Prepare a 9x13 inch casserole dish with nonstick spray. Set aside. Preheat oven to 400 degrees fahrenheit. Combine 1 tbsp butter and 1 tbsp olive oil in a pan on medium heat. Once bubbling, add chopped potatoes, salt, pepper, and granulated garlic. Once potatoes start to turn golden brown in exterior , transfer to casserole dish.
In same pan, combine ham and onion. Sauté until onion is translucent and ham has a slight brown. Transfer to casserole dish with potatoes.
Using tons to hold paper towels, wipe pan clean of residue.
Melt 3 tbsp of butter plus 3 tbsp of flour in pan on medium heat. Once a roux forms, gently whisk in milk. Continue to whisk until a thick sauce forms. Add dijon mustard, salt, pepper and gruyere cheese. Turn heat off, and continue to whisk for additional 1-2 minutes.
Pour Cheese sauce mixture over ham, potatoes & onion and stir with a spoon to fully combine. Top with remaining 1/2 cup of shredded gruyere.
Cover casserole dish with foil, and bake for 20 minutes.
After 20 minutes, remove foil, and bake for 20 minutes, or until top of casserole is golden bubbly.
Allow to cool before serving for about 10 minutes. Top with chives or parsley if desired. Enjoy!