If you're using dried black beans, follow the instructions on the package to soak the beans. Or, follow these instructions.
First, sort through the beans to remove anything that's not a bean, then rinse them. You can soak the beans overnight in 4 cups of water. Or, you can bring 4 cups of water to a boil, add the beans, then simmer for 2-3 hours. Drain the beans then follow the instructions below substituting the dried beans for the canned beans.
Cook the bacon in a medium skillet over medium heat. Once they are cooked, remove them to a plate covered with paper towel to drain the excess grease.
Meanwhile, heat the butter in a stock pot over medium heat. Add the onions and season with salt and pepper. Cook until soft, about 5-7 minutes.
Add the garlic and stir in for about 1-2 minutes. Next, add in the bay leaves and spices - cumin, coriander, oregano, and chili - and let these cook for about 1-2 minutes.
Pour in the vegetable stock, beans, and crumbled bacon. Season with a little salt. Allow the soup to simmer for 30 minutes.
Take out 2 cups of the soup and set aside. Use and immersion blender or a regular blender to slightly blend the rest of the soup to make it a little thicker. Return the 2 cups you removed and serve.
Top with various items like sour cream, avocado, fresh cilantro, and lime wedges.
Bacon Grease
I don't use the bacon grease because there are always little bits of burnt bacon in it which gives the entire dish a slight burnt flavor. Even if there are not little bits, it can burn easily. You get enough bacon flavor from the actual bacon.