In a large skillet or saucepan, heat olive oil over medium heat. Add onion, garlic, carrot, and celery. Cook for about 5–7 minutes until softened.
Add ground beef, cook until browned, and break it up with a spoon.
Stir in the tomato paste, crushed tomatoes, oregano, basil, and beef stock or wine (if using). Season with salt and pepper.
Reduce the heat and let the sauce simmer uncovered for about 30–40 minutes, stirring occasionally, until thickened.
Meanwhile, cook the spaghetti according to package instructions. Drain and set aside.
Serve the Bolognese sauce over the spaghetti. Top with fresh parsley or grated Parmesan if desired