In a large pot, heat the olive oil over medium heat. Add the chopped onion, carrots, and celery. Sauté for about 5 minutes until the vegetables are softened.
Stir in the minced garlic and cook for an additional minute until fragrant.
Add the diced ham to the pot, stirring well to combine with the sautéed vegetables.
Pour in the chicken broth and add the soaked beans to the pot.
Add the bay leaves, thyme, smoked paprika, salt, and pepper. Stir everything together.
Bring the soup to a boil, then reduce the heat to low. Cover and simmer for about 1.5 to 2 hours, or until the beans are tender.
Taste the soup and adjust the seasoning if necessary. Remove the bay leaves before serving.
Garnish each bowl with freshly chopped parsley, if desired.