Add one can of rinsed beans to a food processor along with 1/2 cup broth. Process until smooth, set aside.: The first sensory cue you notice is the beans turning silky and light as they whirl, creating a creamy puree that will thicken the broth without cream. The gentle hum of the processor gives way to a velvet texture, and you should see a pale, smooth mixture free of large lumps. This technique matters because it lends body while keeping the soup dairy free, and it helps the finished bowl feel rich without heaviness. A common mistake is overfilling the food processor, which can result in uneven pureeing; if that happens pulse in batches and scrape down the sides so everything processes evenly.
Heat 1 Tbsp olive oil in a large pot over medium heat. Add onion, carrots and celery and saute 5 minutes. Add garlic and saute 1 minute longer.: As the olive oil warms you will smell a green, fruity note, then the onion releases sweet aromas as it softens and the carrot adds gentle sweetness while the celery gives a savory backbone. The pan should shimmer but not smoke, and you want a softening sound from the vegetables rather than frantic sizzling. Adding the garlic at the end prevents it from burning and turning bitter. This step builds the aromatic foundation; rushing it can leave raw vegetal flavors, so avoid cranking the heat too high and stirring constantly to ensure even softening.
Pour in remaining 4 cups broth, add parmesan rind and rosemary and season with salt and pepper to taste. Bring mixture to a simmer over medium-high heat. Once simmering reduce heat to medium-low. Cover and simmer 10 minutes.: When the broth hits the pot you will hear a gentle increase in sound as it warms, and thin steam will rise as the stock comes alive with the parmesan rind and rosemary . The parmesan rind slowly releases savory, nutty compounds that deepen the liquid, while the rosemary infuses a faint piney scent. Bringing the pot to a simmer and then lowering the heat lets flavors marry without aggressive boiling that can flatten delicate aromatics. A key thing to avoid is a rolling boil which can make the vegetables disintegrate; keep a controlled simmer so the ingredients meld slowly and cleanly.
Add remaining 2 cans of beans (drained and rinsed), and bean puree mixture then continue to simmer 5 minutes, covered. Add kale and continue to simmer, covered, until softened about 5 minutes longer.: Once the whole beans and the bean puree join the pot the texture will shift from clear broth to a more substantial, slightly opaque soup. You will notice a soft plop as the beans settle in and the aroma deepens into a hearty, beany richness. Covering the pot traps steam and allows the beans to heat through evenly, while the puree helps create a velvety mouthfeel. When you add the kale , watch it go from firm and dark to tender and vibrantly green, which signals it is done. Avoid overcooking the kale; it should be wilted but still retain some texture, not mushy.
Remove parmesan rind. Stir in parsley, remaining 3 Tbsp olive oil and the lemon juice.: When you lift out the parmesan rind you will notice the broth smells fuller and rounder. Stirring in chopped parsley adds a fresh herbal brightness, while the extra olive oil gives a glossy sheen and the lemon juice delivers a crisp, acidic pop that balances the savory base. The contrast of warm, rich broth with fresh, citrusy lift is what makes each spoonful sing. A common error is adding too much lemon at once; add a little, taste, and adjust so the acidity brightens without overtaking the soup.
Garnish each serving with grated parmesan.: The final sensory detail is the nutty salt of freshly grated parmesan melting slightly into the hot surface, creating tiny ribbons of savory richness. The aroma at the table becomes more immediate and irresistible. This finishing touch enhances mouthfeel and invites the eater to personalize their bowl. Be careful not to dump the cheese in too early because it can clump; add it just before serving so it melds smoothly into the warm soup.