Heat the olive oil in a large pot over medium-high heat.
Add the diced onion, diced carrot, and diced celery and cook, stirring occasionally, until softened, about 5 minutes.
Add the minced garlic and cook for 1 minute until fragrant.
Add the ground beef and cook, breaking it up with a wooden spoon, until browned, about 5 minutes; drain any excess grease.
Pour in the beef broth, bring to a boil, then simmer for 2 minutes.
Stir in the crushed tomatoes, tomato sauce, tomato paste, Italian seasoning, crushed red pepper to taste, and bay leaves; season with kosher salt and black pepper.
Reduce heat to low and simmer the sauce, partially covered, for 20 to 30 minutes, stirring occasionally; taste and adjust seasoning.
Meanwhile, bring a large pot of salted water to a boil and cook the spaghetti until al dente according to package directions; drain well.
Remove the bay leaves from the sauce. Toss the drained spaghetti with the meat sauce in the pot using tongs, or plate the pasta and top with sauce.
Garnish with freshly grated Parmesan and fresh basil, then serve immediately.