Sauté the Foundation: Heat olive oil in a large pot over medium heat. Toss in your onion, carrots, and celery. Cook for 5–7 minutes, stirring occasionally. You want the onions to go translucent and the vegetables to soften and release their natural sweetness.
Add the Garlic: Stir in the minced garlic and cook for just 30 seconds. Be careful not to let it brown too much, as burnt garlic can turn bitter.
Season the Beans: Add your rinsed beans along with the thyme, rosemary, bay leaf, salt, pepper, and smoked paprika. Stir well so the beans begin to absorb the herbal aromatics.
The Simmer: Pour in the broth. Scrape the bottom of the pot to release any flavorful browned bits. Bring to a gentle boil, then lower the heat and simmer uncovered for 20–25 minutes. As it simmers, the beans will naturally break down to thicken the base.
The Creamy Secret (Optional): For a restaurant-style texture, take about 2 cups of the soup and blend it until smooth (using a blender or immersion blender). Stir it back into the pot for a rich, silky finish while keeping plenty of whole beans for texture.
The Finishing Touch: Remove the bay leaf. Taste and adjust your salt and pepper. If you want a bit of brightness, a quick squeeze of lemon juice or an extra drizzle of olive oil does wonders.
Serve: Ladle into bowls. Garnish with fresh parsley or stir in a handful of baby spinach until it just wilts.