Drain and rinse the soaked beans. In a large pot, combine the beans and chicken broth. Bring to a boil over medium-high heat, then reduce to a simmer. Cook for about 1 hour, or until the beans are tender.
In a separate skillet, heat the olive oil over medium heat. Add the chopped bacon and cook until crispy. Remove the bacon with a slotted spoon and set aside, leaving the drippings in the skillet.
In the same skillet, add the diced onion, carrots, and celery. Sauté for about 5-7 minutes, or until the vegetables are softened. Add the minced garlic and cook for an additional minute.
Once the beans are tender, add the sautéed vegetables, cooked bacon, thyme, bay leaf, salt, and pepper to the pot with the beans. Stir well and simmer for another 20 minutes to allow the flavors to meld.
If using, stir in the chopped kale or spinach and cook for an additional 5 minutes until wilted. Remove the bay leaf before serving.