If you haven’t purchased shaved steak, place your steak in the freezer for 20 minutes before slicing. Once chilled, use a sharp knife and slice the meat against the grain into very thin pieces. Set aside.
To prepare the rolls, if they’re not already sliced, halve them lengthwise, about 3/4 of the way through.
In a small bowl, combine the softened butter and garlic and mix well.
Spread the butter mixture inside the rolls.
Heat a large griddle, cast iron pan, or large skillet over medium-high heat. Place the rolls, cut-side-down, on the hot pan and cook until golden brown, being careful not to burn the bread. Set aside.
Heat 1 tablespoon of the olive oil in the same pan over medium-high heat. Add the onion and cook for 3 to 5 minutes, until soft and caramelized. Season with salt and black pepper. Transfer the onions to a plate and set aside.
Heat the remaining tablespoon of oil in the same pan over high heat. Add the steak in an even layer, without overlapping the meat (if necessary, work in batches to prevent crowding the pan).
Let the steak brown on the bottom without flipping. Season with salt and black pepper and then flip. Repeat until the second side and edges are browned are cooked through.
Return the onions to the pan and cook for 30 seconds to heat through.
Divide the steak and onion mixture into four equal portions and top each portion with 2 slices of cheese.
Remove the pan from the heat and let stand until the cheese melts.
Scoop the cheesesteak mixture into the prepared rolls and serve.