Warm the pot: Heat the olive oil in a large soup pot over medium heat. Add the onion, carrot, and celery with a pinch of salt.
Cook, stirring often, until the vegetables are soft and lightly golden, about 8–10 minutes.
Add the aromatics: Stir in the garlic, tomato paste, rosemary, thyme, fennel seeds, red pepper flakes, and bay leaf. Cook for 1–2 minutes until fragrant and the tomato paste darkens slightly.
Build the base: Pour in the vegetable broth and add the diced potato if using. Bring to a simmer, then reduce heat to maintain a gentle bubble.
Cook 10 minutes to soften the potato and meld flavors.
Beans two ways: Add 1 can of beans to the pot. Lightly mash half of the second can with a fork in a bowl (or use a few pulses of an immersion blender), then add both the mashed and remaining whole beans to the pot. This will thicken the soup without cream.
Simmer and season: Let the soup simmer another 10–12 minutes, stirring occasionally.
If it gets too thick, splash in more broth or water. Season with salt and black pepper to taste.
Add the greens: Stir in the chopped kale. Simmer 5–7 minutes, until the kale is tender but still bright green.
Finish bright: Remove the bay leaf.
Stir in the lemon juice and vinegar. Taste and adjust salt, pepper, and acidity. A final drizzle of olive oil adds a lovely finish.
Serve: Ladle into bowls, top with parsley if you like, and serve with crusty bread or a toasted baguette.