Preheat oven to 350º Fahrenheit. Spray 9 inch square glass pan with an oil of choice
Steam cauliflower for 10-13 minutes or until crisp-tender. Do not overcook. Remove from heat and set aside.
Heat a large skillet over medium heat. Add butter.
When butter stops bubbling, add onion and cook, stirring occasionally until edges are just starting to brown.
Add garlic and cook, stirring constantly for one minute.
Pour the balsamic vinegar into the onion and garlic mixture. Simmer over medium heat, scraping up any browned bits, until mixture has a syrupy consistency.
Stir in cream, cream cheese and tomato paste. Stir until mixture is smooth. Stir in one cup of mozzarella cheese (reserving the other two cups).
Simmer, stirring frequently, until mixture has a thick, creamy consistency. Add oregano, basil, red pepper flakes, salt and pepper. Taste and adjust seasoning if desired. Remove from heat.
In the prepared pan, spread half of the steamed cauliflower. Arrange half of the pepperoni slices over the cauliflower. Sprinkle one cup of mozzarella (reserving the third cup). Layer the rest of the cauliflower and pepperoni slices (but not the mozzarella) in a similar manner. Pour the cream sauce evenly over the layers. Sprinkle with the remaining cup of mozzarella.
Bake in preheated oven for about 20 to 30 minutes or until casserole is bubbly and cheese is lightly browned. Cool 5 to 10 minutes before serving.