Melt butter in a large skillet set over medium-heat.
Add the onions; season with salt and cook the onions for about 25 minutes, stirring occasionally, until they are very soft and browned. If the onions start to burn, turn down the heat to a medium-low.
Meanwhile, in a large mixing bowl combine ground beef, salt, pepper, worcestershire sauce, garlic powder, and onion powder. Mix until thoroughly combined.
Shape the beef into 4 even patties; they should weigh 4 ounces each.
Remove caramelized onions from the pan and transfer to a plate; set aside.
Cook the Beef Patties:
Wipe down the skillet and set it back over medium-high heat.
Add the patties to the heated skillet and cook for about 4 to 5 minutes per side, or until done. Cooking time will depend on the thickness of the patties; ground beef is cooked through when internal temperature registers at 160˚F.
Remove patties from the skillet and set aside.
Make the Sandwiches:
Wipe down the skillet and set it back over medium-low heat.
Butter one side of each slice of bread.
Add 4 bread slices to the skillet, buttered side down.
Place 1 slice of Swiss cheese on each piece of bread; top cheese with a beef patty and caramelized onions.
Add one more slice of cheese on top.
Top each sandwich with the remaining bread slices, buttered side UP.
Cook for 3 to 4 minutes, or until golden brown on the bottom and cheese begins to melt.
Press down on top of the sandwiches and then carefully flip them over; continue to cook for 3 to 4 more minutes, or until golden brown and crispy.