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 1 minute until fragrant.
Add the ground beef and cook until browned, about 5 minutes, breaking it up with a wooden spoon; drain excess grease if needed.
Pour in the beef broth, bring to a boil, then simmer 2 minutes.
Stir in the crushed tomatoes, tomato sauce, tomato paste, Italian seasoning, and crushed red pepper; add the bay leaves and season with kosher salt and black pepper.
Reduce heat to low and simmer the sauce, uncovered or 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, then drain well.
Remove the bay leaves from the sauce. Add the drained spaghetti to the sauce and toss with tongs until combined, or plate spaghetti and top with sauce.
Garnish with freshly grated Parmesan and torn fresh basil, then serve immediately.