Heat the oil in a large, deep saucepan or flameproof casserole dish. Add the lamb and fry until lightly browned. Push the meat to one side and add the chopped onion to the pan. Fry for 5–10 minutes, stirring frequently, until golden.
Stir the saffron into the hot stock, then pour into the pan. Add the tomato paste, strips of orange zest and spices. Stir well, then bring to the boil. Reduce the heat, cover and leave to simmer gently for 1 1/2 hours.
Uncover the pan and take out about a cup of the sauce. Stir the harissa and honey into the reserved sauce, then stir the mixture back into the pan.
Add the pickling onions or shallots, dates, apricots and chickpeas and mix. Simmer gently, uncovered, for a further 20 minutes, stirring occasionally.
Season to taste and scatter the chopped walnuts over the top, then serve. Put a little extra harissa on the table for those who like more heat.