Heat the oil in a frying pan, add the onion and fry gently, stirring frequently until softened and golden.
Meanwhile, using a pestle and mortar, crush the garlic with a pinch of salt, then work in the ginger, cinnamon, saffron and a little pepper. Stir into the onions, cook until fragrant, then remove from the pan and spread over the chicken.
Put the chicken into a heavy saucepan or flameproof casserole that it just fits, heat gently and brown the chicken for about 2–3 minutes, turning often. Add the stock or water, and bring to just simmering point. Cover and simmer gently for about 1¼ hours, turning the chicken over 2–3 times.
Add the olives, preserved lemon, coriander and parsley to the pan. Cover and cook for about 15 minutes until the chicken is very tender. Taste the sauce – if the flavour needs to be more concentrated, transfer the chicken to a warmed serving dish, cover and keep warm, and boil the cooking juices to a rich sauce. Tilt the pan and skim off any surplus fat, then pour over the chicken. Serve with couscous, if liked.