Heat a large skillet over medium-low heat. Add butter then onions and salt once butter is melted. Cook for 10 minutes while stirring to let onions cook down.Reduce heat to low and cook for 45-60 minutes to let onions turn golden. Stir occasionally so onions don’t stick.
Place potatoes in a large pot a cold water over medium heat. Season water with salt and bring potatoes to a boil. Boil potatoes for 12-15 minutes until fork tender.
While potatoes are boiling, heat a small saucepan over medium-low heat. Pour in butter and heavy cream and let mixture warm up and combine.
Drain potatoes and place back into pot. Using a masher, mash potatoes to desired consistency. Mash in ½ of butter cream mix and salt. Then stir in last ½ of butter cream mixture and cheese allowing it to melt within. Stir in ½ of caramelized onions and taste. Add more salt or pepper if desired.
Plate potatoes and top with remaining caramelized onions.
Enjoy!