Heat oil in a soup pot over medium-high heat. Brown ham cubes for 5 to 6 minutes, turning occasionally, then transfer to a plate.
Lower the heat to medium and cook onion and carrots in the same pot for 5 minutes. Stir in garlic and caraway for 30 seconds.
Add broth, cabbage, bay leaf and pepper. Bring to a simmer, cover partly and cook for 15 to 18 minutes until cabbage and carrots are tender.
Return ham to the pot and simmer for 3 minutes until heated through. Discard bay leaf, stir in vinegar and divide among 6 bowls.