Season and brown the beef. Pat the beef dry and season generously with salt and pepper. Heat the oil in a large pot or Dutch oven over medium-high heat.
Add the beef in a single layer and brown on all sides, working in batches if needed. Don’t rush this step—browning builds deep flavor.
Sauté the aromatics. Reduce heat to medium. Add the onion and celery to the pot and cook 3–4 minutes until softened, scraping up any browned bits. Stir in the garlic and cook 30 seconds until fragrant.
Add tomato base and spices. Stir in the tomato paste, thyme, oregano, and smoked paprika.
Cook 1 minute to caramelize the paste slightly. This step gives the broth a richer, rounder taste.
Build the soup. Return the browned beef (and any juices) to the pot. Add the diced tomatoes, beef broth, bay leaf, carrots (if using), cauliflower, and green beans.
Bring to a gentle boil.
Simmer until tender. Reduce heat to low, cover, and simmer 35–45 minutes, or until the beef is tender and the vegetables are soft but not mushy. Stir occasionally and adjust seasoning with salt and pepper.
Finish with zucchini. Add the chopped zucchini in the last 10 minutes of cooking so it stays bright and slightly firm.
Taste and serve. Remove the bay leaf. Taste and adjust seasoning.
Ladle into bowls and garnish with fresh parsley. For extra richness, stir in a knob of butter or a drizzle of olive oil before serving.