Crush the garlic and sauté in butter or olive oil. Preheat your oven for the bread.
If you are adding the ham, bacon, or mushrooms, you would add it to this step and cook through. Remove the additional ingredients and set aside.
Add the three cans of beans to the pot along with broth, herbs, salt, and pepper. Bring to a boil, then reduce to simmer for 15 minutes.
Smash the beans or use the immersion blender to thicken the soup. Do not completely crush all of the beans or it will lose its chunky texture.
Add the bread to the oven to heat.
Add optional previously cooked chicken, ham, or mushrooms. Cook for another 10 minutes.
Add spinach, stir, and let it cook for a few more minutes. You want to make sure the spinach is just cooked.
Squirt a bit of lemon in at the end, to taste. Serve with crusty hot bread.