Melt butter with olive oil in a large pot over medium heat. Add diced onion and cook for 6 to 8 minutes until soft and lightly golden.
Add garlic, thyme, caraway seeds if using, and smoked paprika. Cook for 1 to 2 minutes until fragrant.
Add shredded cabbage in handfuls. Season with ½ teaspoon salt. Cook, stirring occasionally, for 8 to 10 minutes until wilted and lightly colored.
Add diced potatoes, broth, and water. Stir to combine. Season with remaining salt and pepper. Bring to a boil, then reduce to medium-low and simmer uncovered for 18 to 20 minutes until potatoes are tender.
For a creamier texture, use an immersion blender to partially blend 4 to 5 pulses — enough to thicken the broth while keeping texture.
Reduce heat to low. Stir in heavy cream and apple cider vinegar. Simmer gently for 3 to 4 minutes. Do not boil.
Taste and adjust salt, vinegar, and pepper. Ladle into bowls, garnish with fresh herbs and a drizzle of olive oil. Serve with crusty bread.