In a large stock pot, bring olive oil to medium heat. To start the soffrito, stir in carrots, onions, and celery and saute for 15 minutes or until vegetables are soft and onions are translucent. Add garlic and stir for 1-2 minutes until garlic becomes fragrant. Finally, add tomato paste and stir until homogenous with the vegetables and the tomato paste starts to carmelize at the bottom of the pan.
Pour in the vegetable broth and add lentils, dried thyme, dried parsley, parmesan rind, and bay leaves. Raise the heat to high heat and bring the soup to a boil. Once boiling, reduce to a simmer for 35 minutes, stirring occasionally.
After 20 minutes, use an immersion blender to blend the soup for 5 seconds. Then stir in zucchini, beans, water, and salt. Return the soup to a simmer, and continue occasionally stirring for 15 more minutes.
Add in basil and spinach and stir until wilted. Zest in the zest from the entire lemon and then squeeze in all of the juice. Adjust the consistency of the soup by adding more water if necessary. Serve with parsley as a garnish.
Notes
The parmesan rind is such a great addition of flavor. It's not a necessity for the outcome of the soup but it is a great addition.
Blending the soup for a few seconds with an immersion blender will make the soup slightly creamier by breaking up some of the lentils.
Adding the lemon at the end of the cooking process will brighten up the flavor and adds so much to the soup.