Mix together the ras el hanout, ginger, salt, pepper, saffron and water to form a paste. Rub the mixture all over the lamb shanks and place them in a dish. Cover and refrigerate overnight.
The next day - cooking
The next day, warm the oil and butter in a pot with a lid large enough to hold the lamb shanks relatively snugly. Add the finely diced onion and cook for a few minutes to soften.
Add the lamb shanks to the pot along with the cinnamon stick then pour in the 3 cups/720ml water. Bring to a simmer and reduce the heat and cover.
Simmer the lamb shanks, turning occasionally as needed for around 2 hours or a little longer until pull-apart tender.
As the lamb is cooking, cover the raisins with boiling water to re-hyrdrate them slightly. Once they swell up, drain and set aside. Also, warm the olive oil in a small skillet and fry the almonds for the topping for a couple minutes each side to gently brown. Remove from the oil and drain.
Once the lamb is tender, add the honey and raisins. Stir to mix in. Cook, uncovered, over a medium-high heat for around 20 minutes to reduce the sauce before serving.
Serve with couscous or bread on the side with the toasted almonds on top.
Notes
Here I had 2 two large lamb shanks but if smaller, this will work with three. Depending on how much you serve with it (and meat to bone ratio), it should serve 2-3.You can make the lamb ahead of time and chill then reheat in the sauce. Don't add the almonds until the end to keep them crunchy (they can be stored at room temp for a few days - leftover almonds are great on their own!)