Warm the olive oil in a large Dutch oven or deep skillet set over medium heat. Add the finely diced onion, carrot, and celery, stirring occasionally as they cook down and soften—this should take about 8 to 10 minutes. Once aromatic and tender, stir in the chopped garlic and continue sautéing for another minute to enhance the base flavor.
Add the ground beef and cook for 5 to 6 minutes, breaking it apart with a wooden spoon as it browns evenly and begins to absorb the vegetable aromas.
Pour in the red wine, allowing it to simmer for 1 to 2 minutes so the alcohol cooks off and the richness infuses the meat. Stir in the tomato paste along with the chopped thyme, rosemary, and a pinch of red chili flakes for a subtle kick. Mix well to blend the flavors.
Add the crushed tomatoes, beef stock, and bay leaves to the pan. Stir everything together and bring the mixture to a gentle boil. Once bubbling, reduce the heat to low and let the sauce simmer uncovered for 15 minutes, stirring occasionally as it thickens and deepens in flavor.
Meanwhile, fill a large pot with water and bring it to a boil. Add a generous pinch of salt, then cook the gnocchi according to the instructions on the package. Once the gnocchi float to the surface, drain them well.
When the Bolognese sauce has reached a rich, hearty consistency, discard the bay leaves and stir in the cooked gnocchi. Fold in the grated Parmesan and torn basil leaves until evenly distributed. Taste and adjust the seasoning with salt and freshly ground black pepper.
Serve hot, garnished with a little extra Parmesan if desired, for a comforting, flavor-packed meal.