Heat olive oil in a large pot over medium heat.
Add the chopped onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and cook for another minute until fragrant.
Add the diced carrots and celery, cooking for about 5 minutes until softened.
Stir in the diced zucchini, cooking for another 3-4 minutes.
Add the drained cannellini beans, vegetable broth, thyme, and bay leaf.
Bring to a simmer, lower the heat, and cook for 20 minutes, stirring occasionally.
Remove the bay leaf, and season with salt and pepper to taste.
Add the chopped spinach and stir until wilted, about 2 minutes.
Finish with a squeeze of fresh lemon juice and serve garnished with Parmesan.