Heat oil, sauté onion until soft.
Add garlic, carrots, celery; cook until slightly softened.
Stir in tomatoes, broth, herbs, and spices.
Bring to a boil, then reduce heat and simmer.
Add beans and cook 15–20 minutes.
Lightly mash some beans for thickness.
Stir in spinach, parsley, and lemon juice.
Serve hot, topped with Parmesan if desired.