Rinse and soak the beans overnight in water.
Drain and rinse the beans before cooking.
In a large pot, heat olive oil over medium heat.
Add diced onion, carrots, and celery; sauté until softened.
Stir in minced garlic and cook for another minute.
Add soaked beans, chicken broth, diced ham, thyme, and bay leaf.
Bring to a boil, then reduce heat to low.
Cover and simmer for about 1 hour, or until beans are tender.
Season with salt and pepper to taste.
Remove the bay leaf and serve hot.