Place the onion and butternut squash or sweet potato in a pan with the oil and cook gently on a low heat for 20 mins until softening.
Add the garlic, cumin, coriander, tomato puree and green lentils and stir everything together.
Add the stock and cabbage. Bring to the boil and allow to simmer for 20 minutes until the butternut squash or sweet potato is completely soft.
Add the chopped nuts and cranberries and stir through.
Heat for a further 2 minutes.
Season and serve immediately.