01 - Preheat your oven to 400°F. Line a baking sheet with parchment paper and set aside.
02 - Cut the puff pastry sheet into 8 squares (approximately 3x3 inches each). Arrange squares on the prepared baking sheet. Prick each square several times with a fork to prevent excessive puffing. Bake for 10-12 minutes until golden brown and puffed. Remove from oven and let cool slightly.
03 - While pastry bakes, heat olive oil in a skillet over medium heat. Add diced shallot and minced garlic, sautéing for approximately 2 minutes until fragrant. Add chopped spinach and cook until wilted, about 3-4 minutes. Season with salt, black pepper, and nutmeg. Remove from heat and set aside.
04 - Reduce oven temperature to 350°F.
05 - Place 4 baked pastry squares in a baking dish or on the prepared baking sheet. Top each square with one slice of smoked ham, followed by a generous spoonful of the prepared spinach mixture. Sprinkle Gruyère or Swiss cheese evenly over the spinach.
06 - Place the remaining 4 pastry squares on top to create sandwich stacks. Using the back of a spoon, press down firmly in the center of each top pastry square to create a well or indentation.
07 - Carefully crack one egg into each indentation. Bake for 10-12 minutes until egg whites are set but yolks remain slightly runny, or adjust cooking time to achieve desired doneness.
08 - While the Napoleons bake, whisk egg yolks and lemon juice in a heatproof bowl set over a pot of simmering water (double boiler method). Slowly drizzle in melted butter while whisking continuously until the sauce thickens and emulsifies. Season with salt and cayenne pepper to taste. Remove from heat and keep warm.
09 - Remove baked Napoleons from oven. Generously drizzle each portion with warm hollandaise sauce. Serve immediately while eggs are warm and pastry remains crisp.