Sauté the Base: Heat the extra-virgin olive oil in a large pot or Dutch oven over medium heat.
Cook the Aromatics: Add the diced onion, carrots, and celery. Cook for 5 to 7 minutes, stirring occasionally, until the vegetables begin to soften.
Add Garlic: Add the minced garlic and cook for 1 minute until highly fragrant, being careful not to burn it.
Combine Ingredients: Stir in the rinsed cannellini beans, vegetable broth, Italian seasoning, fresh thyme sprigs, rosemary, bay leaf, and the Parmesan rind (if using).
Simmer: Bring the soup to a gentle boil, then lower the heat, cover partially with a lid, and let it simmer for 15 minutes to allow the flavors to meld.
Thicken (Optional): For a creamier texture, remove about 1 to 2 cups of the soup and blend it in a standard blender (or use an immersion blender briefly directly in the pot) until smooth, then stir it back into the broth.
Wilt the Greens: Remove and discard the bay leaf, thyme sprigs, rosemary, and the leftover Parmesan rind. Stir in the fresh spinach or kale and let it wilt in the hot soup for about 2 minutes.
Finish and Serve: Turn off the heat. Stir in the fresh lemon juice and chopped parsley. Season generously with salt and black pepper to taste. Serve warm with an extra drizzle of extra-virgin olive oil.