In sauce pan over medium heat, add butter and garlic powder. Once melted whisk in flour. Let cook for 2 minutes.
Then whisk in milk and let cook for 2 minutes. Add salt, pepper, paprika and ground mustard. Then add heavy cream and cook for 2 minutes. Last add the cheese and stir until fully incorporated.
In a 13x9 baking dish, place half of potatoes in an even layer. top with onions, and half of cheese. Then add remaining potatoes. Pour cheese sauce over top and jiggle pan to help evenly disperse. Top with remaining cheese and parsley. Cover with foil and place in oven for 30 minutes.
Remove foil and bake an additional 10 minutes. Remove from oven and let rest for at least 5 minutes (allows sauce to thicken back up) before serving.