Trim excess fat from the lamb and cut it into 1 inch cubes. Place the meat in a large bowl and set aside.
In another bowl,
mix the saffron, ginger, cumin and cinnamon. Sprinkle over the meat, stir well until the meat is covered evenly and set aside. In a pestle and mortar add the orange zest, coriander leaves, garlic, and sea salt and mince until you get a paste. Add the paste to the meat together with the orange juice and stir well to coat. Cover the bowl with plastic foil and let
it stand at room temperature for at least 2 hours, to marinate. (For a better result, put in the refrigerator and leave overnight)
Add the marinated meat to a heavy cooking pot together with the tomatoes, onions and water. Bring to a boil, cover, lower heat and simmer for about 1 1/2 hours, checking often, until the meat is tender enough. Add the preserved lemon and green olives and cook for about 10 minutes more.