Finely dice the carrots and onion into 1/4-inch pieces, mince the garlic, and measure out all your sauce ingredients (beef stock, wine, tomatoes, tomato paste, Worcestershire sauce, sugar, and Italian herbs). Preheat your oven to 360°F so it's ready when you need it. Having everything prepped and your oven heating while you cook the sauce is the key to efficient timing.
Heat the oil in a large skillet over medium heat. Add the diced carrots, onion, and a pinch of salt and pepper, cooking until the vegetables are softened and translucent, about 4-5 minutes. Add the minced garlic and cook for another 30 seconds until fragrant. Then add the ground beef, breaking it up as it browns and stirring to incorporate it evenly with the vegetables. Once the beef is no longer pink, pour in the beef stock and red wine, stirring well and letting it cook for 5 minutes to reduce slightly and meld the flavors.
Add the crushed tomatoes, tomato paste, Worcestershire sauce, sugar, Italian herbs, and the remaining 1/2 tsp salt and 1/4 tsp black pepper to the skillet. Stir everything together until well combined. Reduce the heat to low and let the sauce simmer gently for 10-15 minutes while you cook the pasta. I like to let it simmer a bit longer rather than rush it—the flavors really develop and become deeper during this time. The sauce doesn't need to be thick; it will thicken further in the oven.
While the sauce simmers, bring a pot of salted water to a boil and cook the spaghetti for 2 minutes less than the package directions call for—this keeps it slightly firmer since it will continue cooking in the oven. Drain the pasta well and return it to the pot. Pour the entire Bolognese sauce from Step 3 over the cooked pasta and toss everything together until the pasta is evenly coated with sauce.
Transfer the sauced pasta mixture into a 9x13-inch baking dish (or similar size). Sprinkle the parmesan cheese evenly over the top, then distribute the mozzarella in an even layer. Cover the dish tightly with foil and bake at 360°F for 20 minutes. Remove the foil and bake uncovered for another 10 minutes, until the cheese is melted and lightly golden. I always use whole milk mozzarella because it melts more smoothly and creates a creamier texture than part-skim varieties.
Remove the baking dish from the oven and let it cool for 5-10 minutes before serving. This resting period allows the cheese to set slightly and makes serving much cleaner. The residual heat will keep everything warm while the structure sets.