Marinate the cubed chicken with soy sauce, paprika, salt, and garlic powder. Set aside.
Heat oil and butter in a pan over medium heat. Sauté chopped red onion until softened, then add the marinated chicken and cook until 80% done.
Add the sliced mushrooms to the pan and cook until all liquid evaporates completely. Remove from heat.
In a saucepan, melt 2 tbsp butter over medium heat. Add chopped garlic and sauté for 1 minute. Add flour and stir continuously for 1 minute to cook out the raw flour.
Slowly pour in the milk while whisking to avoid lumps. Stir in the cream and bring to a simmer until thickening.
Stir in salt, black pepper, paprika, garlic powder, chilli flakes, chicken powder, and shredded cheddar cheese until melted and smooth.
Pour the white sauce into the chicken and mushroom pan. Fold in the whole baby spinach until just softened.
Preheat oven to 200°C (390°F). Divide filling between two medium baking dishes.
Cover each dish with a sheet of puff pastry, crimp edges, brush with egg wash, and cut 2-3 small steam slits in the top.
Bake for 30 minutes until puff pastry is golden and puffed. Rest 10 minutes before serving.