Make a spice rub for the chicken from the ginger, turmeric, garlic, cilantro, olive oil, and lemon
Gently lift and loosen the skin of the chicken from the breast and leg meat, leaving the skin intact. Spoon most of the spice mixture under the skin, and rub the spices over the meat.
Turn the chicken over, and loosen the skin from the back of the chicken. Add the remaining spice rub to the back meat, reaching to the legs if possible.
Salt and pepper the cavity of the chicken, truss the legs and rub a little olive oil on the outside of the chicken. Transfer the chicken to a glass or plastic bowl, cover tightly, and refrigerate overnight.
Set aside the saffron. Slice the onions as thinly as possible. Place the onions, garlic, remaining spices, cilantro, oil and smen in a heavy-bottomed shallow stock pot . Cover and cook over medium heat, stirring occasionally for an hour or until the onions are soft and can easily be mashed with a spoon or vegetable masher. Avoid burning the onions, and add a little oil or water if necessary to prevent the onions from sticking.
Mash the onions and continue cooking, uncovered, until the onions are reduced to a thick blended mass sitting in the oil.
When the onions are a unified mass, stir in the saffron and remove the onions from the heat.
Roast the Chicken
Roast the chicken uncovered, basting occasionally and rotating the pan halfway through cooking, for 2 to 3 hours, or until the skin is golden brown and the leg can be moved easily in its joint.
Transfer the cooked chicken to a serving plate, or hold warm in the turned off oven.
Pour the juices from the roasting pan into the onion sauce mixture, stirring to blend. Add the preserved lemon and olives, 2 or 3 tablespoons of water as needed and simmer the sauce over medium heat for about 10 minutes, or until well-blended and the sauce is thick.
Pour the sauce into the serving platter, spooning a little sauce and olives over the chicken. Garnish the chicken with some of the preserved lemons, and serve immediately with Moroccan bread (khobz) .