Coat the lamb with all the dry spices and leave to marinade overnight or a minimum of 4 hours.
Heat the oil on medium heat in a large, heavy based casserole dish, or your tagine if you're using one. Don't forget a diffuser under your tagine if it needs one.
Sauté the onions for about 5 minutes, until soft, stirring constantly.
Add the garlic, sauté for about 1 minute, we don't want the garlic browning.
Add the lamb and brown, stirring occasionally, for about 10 minutes.
Add the saffron, 800ml of the stock, chopped toms, tomato paste, honey & apricot slithers, stir, bring to the boil, cover and simmer for 1.5 - 2 hours until the lamb is almost done. Add more stock if necessary or if you want more sauce.
Add the preserved lemons and potatoes, cook for 30 more minutes.
Turn the heat of, add the olives & sprinkle the ras el hanout all over and stir.
Serve in a tagine, or any other dish if you prefer, with the herbs and nuts scattered all over.