In a large pot, heat olive oil over medium heat. Add the diced onion, garlic, and a pinch of salt, and sauté until the onion becomes translucent, about 5 minutes.
Add the carrots and celery, stirring occasionally, and cook for an additional 5 minutes until they soften.
Stir in the cumin and smoked paprika, cooking for another minute until fragrant.
Pour in the rinsed lentils and broth; bring to a boil. Reduce heat to a simmer and cover the pot. Cook for about 25 minutes, or until the lentils are tender.
Add the butter beans and chopped spinach to the pot. Stir gently to combine, then simmer for another 5 minutes until the spinach is wilted and the beans are heated through.
Season the soup with lemon juice, salt, and pepper to taste. Adjust any seasonings as needed.