How to Make It
Heat oven to 350°F. Toss cauliflower with 1/4 cup oil and 1 teaspoon salt. Arrange in a single layer on 2 aluminum foil–lined rimmed baking sheets. Roast cauliflower until tender and browned, 30 to 40 minutes.
Meanwhile, heat 3 tablespoons oil in a large skillet over medium. Add onions and cook, stirring often, until softened and lightly caramelized, 12 to 15 minutes. Add garlic and ginger and cook, stirring often, until fragrant. Stir in garam masala, black pepper, cardamom, and cayenne. Add ground almonds, honey, and 1 1/2 teaspoons salt. Cook, stirring, until almonds cling to onions, about 3 minutes. Stir in yogurt and reduce heat to low. Simmer until sauce is thickened and a rich golden color, about 10 minutes. Add milk and cook, stirring, until the sauce is smooth and coats the back of a spoon. Season to taste with salt and remove from heat.
Heat a small frying pan over medium. Add raisins and sliced almonds; cook, shaking pan to keep raisins and almonds moving, until raisins start to blacken and puff up and almonds are golden brown, about 2 minutes.
Spoon sauce onto a platter. Top with cauliflower, and sprinkle with raisins and almonds.