Heat 1 tbsp olive oil in a large pan over medium heat. Add the chopped onion, then sauté for 3-4 minutes, stirring occasionally, until softened and fragrant.
Add the minced beef to the pan and cook for 5-7 minutes, breaking it up with a spoon until browned. Stir in the crushed garlic.
Stir in the celery, carrots (if using) chopped tomatoes (or passata), tomato puree, Worcestershire sauce, and beef stock cube. Add the dried oregano and basil, then season with salt and pepper to taste.
Pour in the red wine (or 100ml beef stock if not using wine), scraping up any browned bits from the bottom of the pan. Let it simmer for 2-3 minutes until slightly reduced.
Reduce the heat to low and let the sauce simmer uncovered for 30-45 minutes, stirring occasionally. If it becomes too thick, add a splash of water or extra stock.
Meanwhile, bring a large pot of salted water to a boil. Cook the spaghetti according to the package instructions, then drain. Reserve a little pasta water if needed to loosen the sauce later.
Once the sauce has thickened, taste and adjust the seasoning if necessary. Serve over the spaghetti, topped with grated parmesan cheese.