Place the potatoes, water and garlic in a saucepan and bring to boil.
Reduce heat and simmer until the potatoes are completely tender and dry.
Mash well, add the butter or margarine and milk and mash until creamy.
Add the spring onion, parsley and white pepper and set aside.
For the topping, sauté the onion in the butter until tender and golden.
Season with salt and garlic and herb seasoning.
Grease an ovenproof dish of a suitable size with butter and spoon half of the potato mixture into the dish.
Spread evenly and sprinkle half of the onion and cheese over the potato.
Spoon the remaining potato over the filling and spread out evenly but allow a slightly rough look on top.
Sprinkle the remaining onion, cheese and mature Cheddar or Parmesan cheese on top.
Refrigerate for several hours or up to a day if necessary.
About 40 minutes before required for serving, preheat the oven to 180ºC and bake the dish for 20 - 25 minutes or until light golden brown on top.