Preheat oven to 350 degrees F. Grease
a 9 by 13-inch baking dish with butter.
In a large bowl, stir together the eggs, cream, and Parmesan
. In a bowl, whisk
together the flour, sugar
, baking powder, cayenne, chipotle, and garlic
. Stir the flour mixture into the egg mixture and set aside.
Heat the butter and oil in a large skillet over medium-low heat. Add the onions and cook, stirring, until caramelized, about 25 minutes. Add the water chestnuts and cook for another 5 minutes.
Stir the onion mixture into the egg mixture and spoon into the greased baking dish
. Sprinkle with slivered almonds and bake until the pudding
is set, about 30 minutes.