Preheat oven to 350F.
Grease a 9inch deep baking dish and set aside.
In a medium saucepan, melt butter over medium heat, add onion and cook until softened, about 6 minutes.
Add flour, salt, pepper and Italian seasoning and cook, stirring frequently, until mixture is pale golden for about 5 minutes.
Whisking constantly, pour in 2 cups of milk, cook for a few minutes and add the remaining 2 cups of milk, whisk until smooth. Cook mixture stirring constantly until it starts to boil.
Reduce heat to low and simmer gently, stirring occasionally, until the sauce thickens and is very creamy, about 8 - 10 minutes. Taste and adjust for salt and pepper.
Remove from heat and stir in 8.8 ounces of cheese until melted.
Mix the potatoes with the béchamel sauce and transfer the mixture to the baking dish, top with the remaining 1 cup of mozzarella cheese and transfer the dish into the oven.
Bake for 1 hour or 1 hour and 10 minutes until the potatoes are tender.
Serve and enjoy!