In a large stockpot or Dutch oven, heat the olive oil over medium heat.
Add the diced onions, garlic, and green peppers.
Sauté for about 10 minutes, stirring occasionally, until the vegetables are soft and fragrant.
Pour in the vegetable stock and add the carrots, rinsed lentils, thyme, salt, pepper, and chopped tomatoes with their juice.
Stir everything together and bring the soup to a boil.
Once boiling, reduce the heat to low, cover, and let it simmer for 45-50 minutes, or until the lentils are tender.
Stir occasionally to prevent sticking.
Stir in the chopped fresh spinach and cook for another 5 minutes, until it has completely wilted. If using frozen spinach, ensure it's thawed and squeezed of excess water before adding.
Remove the pot from the heat.
Taste and adjust seasoning with more salt and pepper if needed.
Stir in the butter until it melts for a rich, silky finish.
Serve hot.
Add a squeeze of fresh lemon juice or a splash of red wine vinegar at the end to brighten up all the earthy flavors.