Heat oil in a very large, heavy-bottomed pot over medium-high heat. Add beef to the center and season to taste (I add 1/2 tsp each salt & pepper). Let it sear, then crumble and cook until deeply browned. Remove with a slotted spoon, loosely cover with foil, and set aside.
You want about 2 tablespoons fat in the pot. If there’s more, drain off the excess. If there’s less, add enough olive oil to make about 2 tablespoons total. Add onion, carrots & red pepper. Sauté, stirring occasionally, until softened and lightly browned, about 7–10 minutes.
Add garlic, tomato paste, beef bouillon, garlic powder, onion powder, cumin, oregano, chili powder & paprika. Cook, stirring constantly, until very fragrant and the tomato paste begins to darken slightly, about 2–3 minutes.
Sprinkle flour over everything and stir well. Cook for 1 minute, stirring constantly. Add crushed tomatoes (careful, they may sputter!) and cook for 1 more minute. Gradually pour in beef broth while stirring constantly and scraping up any browned bits from the bottom of the pot.
Add potatoes and bay leaves and stir well. Increase heat to high and bring soup to a boil. Reduce heat to medium-low, cover, and simmer for 15–20 minutes, or until potatoes are fork-tender. Stir every 4–5 minutes, scraping the bottom of the pot so nothing catches, then promptly replace the lid.
Once potatoes are tender and broth has thickened nicely, return beef to the pot. Add black-eyed peas, corn & Worcestershire sauce and stir just until everything is warmed through. Stir in red wine vinegar, then taste and adjust seasonings to preference (I typically add another 1/4–1/2 tsp salt). For even more flavor and a thicker texture, let the soup simmer a little longer over low heat before serving.
Remove and discard bay leaves. Ladle into bowls and top with parsley and freshly shredded Cheddar, if using. Serve with crusty buttered bread for dipping.
Notes
Note 1: Tomatoes make a big difference flavor-wise, so I recommend good-quality crushed tomatoes. Fire-roasted are especially good here. I like Cento Marzano®, Carmelina Marzano Italian® or Muir Glen®. If using cheaper tomatoes, you may need to add 1–2 teaspoons sugar at the end to balance the acidity.Note 2: Beef broth can make a big difference in this soup. My favorite store-bought option here is Swanson®.Storage: Store cooled leftovers in an airtight container in the fridge for up to 4 days. The flavor gets even better as it sits! Reheat gently on the stovetop or in the microwave, adding a splash of broth if needed to thin it out.