Put the spices in a large bowl and pour the orange juice over them. Add the lamb and mix well, then cover and leave in a cool place for at least 1 hour, or preferably overnight in the refrigerator.
Put the onions or shallots in a heatproof bowl and cover with boiling water. Leave for 2 minutes. Drain and refresh under cold water, then peel.
Heat the oil in a large, flameproof casserole. Remove the lamb from the marinade and pat dry with kitchen paper. Brown over a high heat until golden all over. Using a slotted spoon, remove the lamb and set aside. Reduce the heat slightly and, adding a little more oil if necessary, cook the onions or shallots and garlic for 3 minutes or until just beginning to brown. Return the meat to the pan and stir in the flour and tomato purée. Cook for 1 minute.
Add the marinade to the pan with the stock, sherry and seasoning. Bring to the boil, then reduce the heat, cover and place in a preheated oven, 180°C (350°F), Gas Mark 4, for 1 hour. Add the apricots and chickpeas and cook for a further 15 minutes. Serve with couscous cooked according to the packet instructions.