Toss the cubed lamb in half the ground spices and leave for at least four hours. Overnight would be ideal.
Set the oven at 325 F. Warm the olive oil in a deep, heavy-based casserole and add the seasoned meat in small batches. Remove when it is browned nicely on all sides. Peel and roughly chop the onions, then peel and finely slice the garlic. Add to the pan with the remaining spices and allow to soften and color lightly. Stir regularly over a moderate heat so that the spices flavor the onions but do not burn.
Add the sultanas, honey, saffron stamens, stock, tomatoes and apricots, then return the meat to the pan. Bring to the boil, season with salt and black pepper, then cover with a lid and place in the oven. Cook for two and a half hours.
Cut the preserved lemon in half and discard the interior pulp. Finely chop the skin and stir into the tagine. Lift out the meat with a draining spoon and boil the sauce over a high heat until it is reduced and thick, then stir in the roughly torn coriander and mint leaves. Return the meat to the sauce and serve.