Prepare the base: Heat olive oil in a large skillet or Dutch oven over medium heat. Sauté onion, garlic, carrot, and celery until softened (5–6 minutes).
Cook the meat: Add ground beef to the pan. Cook until browned, breaking it up with a spoon. Season with salt and black pepper.
Deglaze and build flavor: Pour in red wine (if using) and cook until reduced by half. Stir in tomato paste and cook for 1–2 minutes.
Simmer the sauce: Add crushed tomatoes, oregano, basil, thyme, and bay leaf. Reduce heat to low and simmer uncovered for 45–60 minutes, stirring occasionally. Add milk or cream during the last 10 minutes if using, for a richer sauce. Adjust seasoning with salt and pepper to taste.
Cook the spaghetti: Bring a large pot of salted water to a boil. Cook spaghetti according to package instructions until al dente. Drain and set aside.
Combine and serve: Toss cooked spaghetti with the Bolognese sauce. Plate and generously top with freshly grated Parmesan cheese. Garnish with fresh basil leaves and cracked black pepper if desired.