Pre-heat the oven to 150C.
Start by caramelising the onions. Place a medium sauté pan on a medium to high heat. Add 2 tablespoons of the olive oil, the onions, honey, ras el hanout, ¼ teaspoon of salt and ¼ teaspoon of pepper. Cook for 15-30 minutes, on until the onions are soft, dark brown and sweet. Remove from the heat, stir in the raisins or sultanas and set aside.
Place a ridged griddle pan on high heat and leave until piping hot. Mix the tomatoes with 2 tablespoons of oil and cook on the hot pan for about 4 minutes, until the skin is slightly charred and the flesh is soft, turning occasionally. Set aside.
Line the base and sides of a roasting tin, approximately 20 x 30 centimeters, with baking paper and put in the couscous, along with ½ a teaspoon of salt. Pour over 800ml of boiling water and 2 tablespoons of olive oil. Stir and leave to soak for 10 minutes, covered with foil. Dot the soaked couscous with the butter cubes, cover with foil again and bake in the oven for 15 minutes. Remove from the oven and fluff up with a fork.
Once the couscous has cooled slightly transfer it into a large bowl. Add the onion and raisin mix and stir. Add the cumin seeds, garlic, almonds, rocket and most of the herbs, leaving a little to the end. Finally add the lemon juice, ½ teaspoon of salt and ½ teaspoon of pepper and mix gently.
Gradually transfer the couscous to a serving platter scattering with the cherry tomatoes as you go. Finish with a sprinkle of herbs and drizzle with argan oil.