Heat olive oil in a large Dutch oven or pot over medium-high heat. When the oil starts to shimmer, you're ready to go.
Add the ground beef and break it apart with a wooden spoon. Season with a pinch of salt and pepper. Brown the meat until no pink remains, about 5-7 minutes.
Add onions, carrots, and celery to the pot with the beef. Cook until vegetables begin to soften, about 4-5 minutes. The onions should become translucent but not browned.
Stir in the garlic and cook for 30 seconds until fragrant. Don't let it burn or it will taste bitter!
Add the tomato paste and cook for 1-2 minutes, stirring constantly. This helps develop a deeper flavor in your soup.
Pour in the beef broth and diced tomatoes with their juice. Use your wooden spoon to scrape up any browned bits from the bottom of the pot – that's pure flavor you don't want to waste!
Add the diced potato, Worcestershire sauce, dried herbs, and bay leaf. Stir to combine, then bring the soup to a boil.
Once boiling, reduce heat to a simmer and partially cover the pot. Let it bubble gently for about 20 minutes, or until the potatoes and carrots are tender when pierced with a fork.
If using pasta, add it now and cook according to package directions, usually about 7-10 minutes more. The pasta will absorb some of the broth as it cooks, so you may need to add a bit more broth if you prefer a soupier consistency.
Add the frozen mixed vegetables and fresh parsley. Simmer for an additional 5 minutes until the vegetables are heated through.
Remove the bay leaf and taste your soup. Season with additional salt and pepper as needed.
Ladle into bowls and garnish with extra fresh parsley and any optional toppings you like. Serve with crusty bread for maximum comfort food vibes!