Soak the beans overnight (about 8-10 hours) or do a quick soak by placing the beans in a pot of water, bringing it to a rolling boil for 2 minutes, then remove from heat and cover for an hour.
After the beans have soaked, rinse them and add to a large pot, cover with water by 3 inches, ad a pinch of salt if you like. Bring to a boil then reduce to a simmer, stirring occasionally, for about 1-2 hours until the beans are tender.
While the beans are simmering, in another large pot, heat on medium temp and crisp up the bacon, set the bacon aside and drain the fat from pot, reserving about 1 tablespoon of fat in the pot.
Cut the pork into 1 inch cubes and brown in the bacon fat in the large pot. You are not trying to cook it through, just brown and sear it up a little, then remove from the pot and set aside.
When the beans are cooked and good and tender, drain, reserve one cup of beans and set aside. Now using the pot the pork was cooked in, add the carrot and cook until soft, then add the garlic and cook until it is fragrant. Then add the beans, pork stock, butter, bay leave, thyme, and pork. On a low simmer let this cook for 45 minutes to 1 hour with lid on, stirring occasionally.
Take the last cup of beans that you reserved and smash with the back of a fork to make a paste, add this to the pot and stir to combine, this will thicken the stew, continue with the low simmer for another 2-3 hours, stirring occasionally. Serve with a garnish of crumbled crispy bacon on top and some buttered bread.