1 large head cauliflower
5 tablespoons (75ml) extra-virgin olive oil, divided, plus more for drizzling
1 3/4 teaspoons store-bought ras el hanout, divided (see note)
2 (12-ounce; 340g) packs extra-firm tofu
2 cups (475ml) full-fat Greek yogurt
One (3-inch) piece fresh ginger (about 2 ounces; 55g), peeled and finely grated or minced
Freshly ground black pepper
1 red onion (8 ounces; 225g), sliced about 1/8 inch-thick and soaked for at least 10 minutes in ice water
3 cups loosely packed fresh mint leaves and cilantro sprigs (about one-half bunch cilantro and one bunch mint)
One preserved lemon, seeds removed and flesh and peel finely diced (optional; see note)
Dried ground sumac, for sprinkling (optional)
Preheat oven to 475°F (245°C) with a clean rimmed baking sheet set on the middle rack. While the oven heats, cut the cauliflower into 1-inch florets. In a large bowl, toss cauliflower with 3 tablespoons (45ml) olive oil and 1 1/2 teaspoons ras el hanout; season with salt.
Add cauliflower to heated baking sheet, carefully spreading it in a single even layer; set bowl aside. Return baking sheet to oven and roast cauliflower until it is just tender and lightly browned, about 20 minutes.
While cauliflower is cooking, bring a kettle of water to a boil. Drain tofu and cut it into 1- by 3/4-inch planks. Place tofu pieces in a colander in the sink and pour the boiling water all over them.
Transfer tofu to work surface lined with paper towels. Arrange tofu pieces in an even layer, then lay more paper towels on top and press down to absorb excess water. Add tofu to the same mixing bowl used for cauliflower and toss with remaining 2 tablespoons (30ml) olive oil and 1/4 teaspoon ras el hanout. Season with salt.
When cauliflower is cooked, transfer to platter to cool; wipe baking sheet to ensure any stray bits of cauliflower are removed. Arrange tofu on now-empty baking sheet in a single even layer, then roast, flipping once halfway through, until crispy on both sides, about 15 minutes.
Meanwhile, in a small mixing bowl, stir together yogurt and ginger. Season with salt and a generous amount of black pepper.
In a separate medium bowl, drain red onion, making sure to remove any stray pieces of ice. Sprinkle all over with salt, and using your fingers, rub salt into the onion slices. Let stand for at least 10 minutes.
To serve, dollop a generous amount of ginger yogurt onto each serving plate or bowl. Mound the cauliflower and tofu on top. Drizzle with fresh olive oil and scatter preserved lemon on top, if using. Drain onions of any accumulated liquid, then toss with cilantro sprigs and mint. Mound herb salad on top of cauliflower and tofu, and sprinkle with sumac, if using. Serve warm or at room temperature.
Notes: Ras el hanout is a complex mix of spices hailing from North Africa. While recipes vary, it typically blends warm spices like cinnamon, nutmeg, clove, and cardamom with paprika, black pepper, and turmeric; some versions also include floral notes from dried rosebuds. You can buy it online and at well-stocked supermarket spice aisles, or make an easy substitute by mixing 3/4 teaspoons sweet or hot paprika with 1/4 teaspoon cinnamon, 1/4 teaspoon ground coriander seed, 1/4 teaspoon ground cumin, and 1/8 teaspoon each ground nutmeg and cardamom.
The cauliflower and tofu are best roasted shortly before serving. You can make the ginger yogurt up to 1 day in advance