Finely chop the onion and garlic.
In a large saucepan heat one tbsp of vegetable oil and brown the diced lamb for a couple of minutes, then move them to a plate.
Add more oil to the pan and gently fry the onion and garlic until soft. Put the lamb back, add the spices and tomato purée.
Add the carrots(halved), pepper, chilli and chopped tomatoes. Pour in the stock and the wine, season with salt and pepper, add the bay leaf and bring to the boil.
Turn down the heat and gently simmer for about an hour until the lamb is tender, the veggies are soft and the sauce is thick and silky. Discard the pepper and bay leaf. Add the drained beans and warm through. Stir through the spinach, put the lid on, turn off the heat and rest for 5 minutes until the spinach has wilted.
Serve warm.