Preheat oven 400 degrees Fahrenheit. Grease a 2 quart baking dish with cooking spray and set aside.
Melt butter in a medium-sized saucepan on medium heat.
Add onion and sauté for 4-5 minutes. Add garlic and stir for a minute.
Gradually add flour and stir until well combined.
Add chicken stock, salt, pepper and stir until smooth.
Slowly add milk continue stirring until combined. Simmer over low heat for 1-2 minutes stirring constantly. This is the cream sauce.
Spread half of the potatoes evenly in baking dish. Pour half of the cream sauce over potatoes. Sprinkle with Parmesan cheese and 1 cup of grated cheese.
Place the rest of the potatoes on top. Cover with remaining cream sauce and cheese.
Cover pan with foil and bake for 45 minutes. Hint: not a bad idea to place a sheet of foil on oven rack under the baking dish in case the cream sauce should boil over.
Remove foil and continue baking uncovered for 30 minutes or until potatoes are cooked through.
Remove from oven and allow resting time of 10 minutes prior to serving.