Heat the olive oil in a large pot over medium heat. Add the diced onion and a pinch of salt. Cook until soft and translucent, about 5–7 minutes. Add the garlic, carrots, and celery and sauté for 3–4 minutes.
Stir in the cubed potatoes, dried thyme, and smoked paprika. Cook for 2 more minutes to toast the spices.
Pour in the diced tomatoes with juices and the broth. Bring to a gentle boil, then reduce heat and simmer, partially covered, for 12–15 minutes until potatoes are nearly tender.
Add the shredded cabbage and simmer for another 8–10 minutes until the cabbage and potatoes are tender. Season with salt, pepper, and lemon juice if using. Stir in chopped parsley or dill before serving.
Notes
For a heartier soup, add a can of drained white beans or cooked diced chicken.
To make creamy, stir in 1/2 cup coconut milk or cream at the end.
Leftovers keep in the fridge for up to 4 days and freeze well for up to 3 months.