If using a tajine: Mix the oil, herbs, spices, salt, 2 cloves the garlic, and water in a bowl. Rub the lamb with 1/2 of the oil mixture. Place the lamb mixture in the bottom of the tajine. Top with onions and remaining garlic. Surround the lamb with the artichokes, then cover the lamb and artichokes with the rest of the oil mixture. Close the tajine with the conical top, then cook on the stovetop at medium heat for 1 1/2 to 2 hours. Uncover the tajine, garnish with olives, lemon juice, and slices of the preserved lemon.
If cooking in a pot: Use the heaviest pot available. Preheat slowly over stove at medium heat. Add the olive oil, braise the lamb in oil until slightly brown, and then add the onion and garlic. Stir well for few minutes.
Add the herbs, spices, and water. Season, to taste. Cook for 10 minutes. Put in the artichokes and the olives. Continue cooking for another 35 minutes. Remove the artichokes, turn the fire to low, and simmer the sauce for 15 minutes. Serve on a large platter. Place lamb in center, then garnish with artichokes then olives. Top with remaining sauce. Follow with lemon juice and preserved lemon. Serve hot.