Warm olive oil and 1 Tablespoon of the butter in a large Dutch oven or stockpot over medium-high heat. Add carrots, celery, and onion. Sauté, stirring frequently, for 6-8 minutes.
1 Tablespoon olive oil, 2 Tablespoons butter, 3 medium carrots, 2 celery stalks, ½ medium yellow onion
Stir in the garlic and thyme. Cook for 30-60 seconds more, just until fragrant.
3-4 cloves garlic, 1 teaspoon dried thyme
Add chicken broth and water, then bring the liquid to a boil. (Cover the pot if you want to make this go more quickly.)
4 cups low-sodium chicken broth, 2 cups water
Once the liquid is bubbling rapidly, stir in the ham, beans, and bay leaves. Reduce heat to medium-low so it settles on a gentle bubble. Cover the pot, but leave the lid cracked open about one inch for some steam to escape. Simmer for 15-20 minutes. (Cook longer if you like; a longer simmer will just concentrate the flavors.)
2 cups cooked ham, 2 (15 ounce) cans white beans, drained and rinsed, 2 bay leaves
At any point while the soup is simmering, melt the remaining 1 Tablespoon butter, then stir in the flour to make a quick roux. Stir this into the soup as it cooks.
1 Tablespoon all-purpose flour
When ready to eat, turn off the heat, fish out the bay leaves, and stir in 1 teaspoon lemon juice. Sample and season with more lemon juice, salt, and pepper to taste. (Ham can be very salty, so season only after testing a bite.) Enjoy!
kosher salt and black pepper, fresh lemon juice