Heat olive oil in a large soup pot over medium heat.
Add onion, celery, and carrots; cook for 5 minutes until onion softens.
Add garlic, leftover ham, ham bone, parsnip, bay leaves, and broth.
Bring soup to a boil, then reduce heat to medium and simmer for 30 minutes.
Stir in the rinsed beans, cumin, thyme, salt, and pepper.
Continue cooking for another 30 minutes.
Remove ham bone, bay leaves, and parsnip from the pot.
Taste and adjust seasoning as needed.
Garnish with fresh parsley before serving.
Serve warm with crusty bread for a complete meal.