To prepare toppings, cook bacon in a skillet over medium heat until crisp. Remove bacon from pan and set aside. Add spinach leaves to bacon fat in pan and sauté 2 minutes or until wilted. Remove spinach from pan and try to remove any excess liquid by pressing in a strainer or squeezing in a towel, if necessary. Add onions, a pinch of salt, and honey to the pan and cook for 10-12 minutes or until golden brown and caramelized, stirring frequently. Remove from heat and cool.
To make sauce, melt butter in a medium saucepan over medium heat. Add garlic and cook for 2 minutes, stirring frequently. Add flour and pepper and cook, stirring with a whisk, for about 30 seconds. Gradually add the milk, stirring constantly with the whisk. Cook for 5 minutes more or until thick and bubbly, still stirring constantly with the whisk.
Place pizza stone in oven (I highly recommend a pizza stone!) and preheat to 425°F about a half hour before you are ready to bake the pizza.
If using pizza dough instead of a prepared crust, roll dough out on a floured surface to desired shape. Crimp edges of dough with fingers to make a crust, if desired. (Optional: I like to prebake my crust for 3 minutes before adding the toppings.)
Spread milk mixture evenly over dough and top with cooked spinach and caramelized onion. Sprinkle evenly with bacon and cheese. Bake an additional 7 minutes (or 10 minutes total), until golden brown.
If you are not using a pizza stone, you will want to heat the oven to 475°F, spread the dough onto an oiled baking sheet, and bake for much longer, probably around 20 minutes. But seriously, the pizza stone is well worth the investment!