Remove thawed puff pastry from packaging and cut each sheet into (4) 5 inch squares. Set aside.
In a medium saucepan over medium high heat, add 1 tablespoon of butter to melt. Add the diced onions and saute for several minutes until softened and translucent. Set the onions aside.
Add the remaining butter to the saucepan. Once the butter has melted, stir in the flour, salt, pepper and garlic powder. Cook for 2-3 minutes, stirring constantly until the flour becomes a light golden brown.
Whisk in ½ cup of milk until well combined with the flour mixture, then pour in and whisk the remaining milk. Cook the sauce for 4-5 minutes, stirring constantly, until thickened. Reduce heat to low and simmer for another 10 minutes, whisking occasionally to prevent the bottom of the sauce from burning and to remove any lumps.
Remove the saucepan from heat and stir in the chopped spinach.
Once the spinach has wilted, stir in the sauteed onions, diced ham, and ½ cup of the grated cheese.
Remove the puff pastry squares from the refrigerator and place on a baking tray lined with parchment paper.
Scoop two tablespoons of the ham cheese mixture onto the center of each square.
Divide the remaining grated cheese between the squares and sprinkle on top of the ham cheese sauce.
Fold the corners into the center of each puff pastry square to form a pocket over the ham and cheese.
Whisk the egg and tablespoon of cold water together to create a wash, and brush the mixture over the top of each of the folded pastry squares.
Bake in the oven for 18-20 minutes, or until the pastry puffs are fully cooked and a light golden brown.
Allow the pastry to cool slightly before serving, garnish parsley and enjoy!
Notes
This recipe can easily be doubled to serve more people.