Heat olive oil in a large saucepan or Dutch oven over medium heat. Add onion, carrot, and celery, and sauté until softened, about 5 minutes.
Stir in garlic and cook for 1 minute until fragrant.
Add the ground meat, breaking it up with a wooden spoon. Cook until browned, about 8 minutes.
Pour in white wine (if using) and cook until evaporated, about 3 minutes.
Stir in milk and simmer for 5 minutes until slightly reduced.
Add crushed tomatoes, tomato paste, oregano, bay leaf, salt, and pepper. Stir well to combine.
Reduce heat to low, cover partially, and let simmer gently for 1.5-2 hours, stirring occasionally.
Taste and adjust seasoning if needed. Remove bay leaf before serving.
Serve over your favorite pasta or use in lasagna.