Slash the lamb leg all over and put in a big food bag, or in a large casserole dish. Smash the marinade ingredients together using a pestle and mortar. Add some black pepper and rub all over the lamb. Marinate overnight, or up to 24 hrs.
Heat oven to 140C/120C fan/gas 1. Sit the lamb in a big roasting tin, scraping off any leftover marinade on the top. Cover the tin with foil, pinching the edges to seal. Cook for 6-7 hrs, basting every hour or so, until the meat is incredibly tender.
Remove the roasting tin from the oven and increase oven to 200C/180C fan/gas 6. Pour the juices from the lamb into a measuring jug, cool slightly and skim off the fat. Put the shallots in the tin with the lamb and toss to coat in some of the juices. Roast for 15 mins, then add the apricots and almonds. Whisk the cooking juices with the lemon, ras el hanout, honey and stock, then pour over the lamb and roast for another 20 mins.
Rest for 10 mins, then scatter over the herbs and serve with couscous and yogurt.