01 - Preheat the oven to 400°F. Line a baking sheet with parchment paper.
02 - Cut the puff pastry into 8 squares (about 3x3 inches each). Place them on the prepared baking sheet. Prick each square with a fork. Bake for 10-12 minutes, or until golden and puffed. Let cool slightly.
03 - Heat olive oil in a skillet over medium heat. Sauté shallot and garlic until fragrant, about 2 minutes. Add spinach and cook until wilted. Season with salt, pepper, and nutmeg. Remove from heat and set aside.
04 - Reduce oven temperature to 350°F.
05 - Arrange 4 pastry squares on a baking dish. Top each with a slice of ham, a spoonful of spinach mixture, and a sprinkle of Gruyère. Top with the remaining pastry squares to create stacks.
06 - With the back of a spoon, make an indentation in the top of each stack. Carefully crack an egg into each indentation.
07 - Bake for 10-12 minutes, or until eggs are just set but yolks are still runny (or to your desired doneness).
08 - While eggs bake, prepare hollandaise sauce: Whisk egg yolks and lemon juice in a heatproof bowl over a pot of simmering water. Slowly drizzle in melted butter, whisking constantly, until thickened. Season with salt and cayenne pepper.
09 - Drizzle each Napoleon with hollandaise sauce before serving.