Heat olive oil in a large pot over medium heat.
Add onion, garlic, carrots, and celery. Sauté until vegetables are softened, about 5 minutes.
Pour in the chicken broth and water, then add the ham bone (or diced ham).
Stir in white beans, thyme, smoked paprika, salt, and pepper.
Drop in the bay leaf and bring the soup to a gentle boil.
Reduce heat and let simmer for 45-60 minutes, stirring occasionally.
Remove the ham bone, shred any meat, and return it to the soup.
Discard the bay leaf, garnish with fresh parsley, and serve warm.