Heat olive oil in a large pot over medium heat.
Add onion, carrots, and celery and cook until softened, about 5 minutes.
Stir in garlic and cook for 30 seconds until fragrant.
Add chopped cabbage and stir well, allowing it to soften slightly.
Pour in the broth and add bay leaf, herbs, salt, and black pepper.
If using diced tomatoes, add them at this stage.
Bring the soup to a gentle simmer and cook uncovered for 25–30 minutes, until the cabbage is tender.
Remove the bay leaf, taste, and adjust seasoning before serving.