Add the olive oil and 2 tablespoons butter to a large pot over medium high heat. Season the lamb with salt and pepper. Working in batches, add the lamb to the pot, cooking until browned on all sides. Transfer the lamb to a plate and continue with the remaining lamb (about 20 minutes total).
Add your garlic, tomatoes and onions to the pot. Cook, stirring occasionally, until golden brown, about 10 minutes.
Add the white wine, tomato paste, cumin and cinnamon. Cook, stirring for 3 minutes.
Add back in the lamb and the beef stock. Bring to a boil, then reduce the heat to medium-low. Cover and cook for 2 hours.
While waiting for the stew to cook, heat your broiler to high. Stir the remaining 2 tablespoons butter (or olive oil for dairy free) and smoked paprika together in a medium sized bowl. Add the cauliflower florets, stirring to combine. Season with salt and pepper.
Add to a baking sheet and broil until cauliflower is slightly browned and chewy, about 10 minutes, stirring every few minutes.
Lightly toast your almonds until fragrant.
Stir in the cornstarch mixture and return to a boil. Reduce the heat to medium and stir in the harissa and dates. Season with salt and pepper and cook for another 5 minutes.
When ready to serve, ladle the stew into bowls. Top with the charred cauliflower and toasted almonds.