Prep the steak.
Place the steak in the freezer for about 20 to 30 minutes until it is firm but not frozen solid. This makes it much easier to slice very thinly. Use a sharp knife to cut the steak against the grain into paper thin strips. Trim away any large chunks of fat but keep a little marbling for flavor.
Prep the veggies.
While the steak chills, slice the onion, bell pepper, and mushrooms. Try to keep the slices similar in size so they cook evenly. This step can be done earlier in the day and stored in the fridge if you like to prep ahead.
Cook the onions and peppers.
Heat a large skillet or griddle over medium heat. Add 1 tablespoon of butter and the olive oil. Once the butter is melted and sizzling, add the onions and bell pepper. Cook, stirring occasionally, for 8 to 10 minutes until the onions are soft and golden and the peppers are tender. If you are using mushrooms, add them halfway through the cooking time so they have time to soften and lightly brown.
Season the veggies.
Sprinkle a pinch of salt over the vegetables as they cook to draw out their natural sweetness. When they are done, transfer them to a plate and keep them warm near the stove.
Cook the steak.
Increase the heat to medium high. Add the remaining 1 tablespoon of butter to the skillet. Once it is very hot and foamy, add the sliced steak in a single layer. Do this in batches if needed so you do not overcrowd the pan. Season with kosher salt, black pepper, garlic powder, and smoked paprika.
Sear, then chop.
Let the steak cook undisturbed for 1 minute, then use a spatula or tongs to flip and separate the pieces. You want the steak to be just cooked through but still tender, which should take about 3 to 4 minutes total. If pieces stick together, gently chop them with the edge of your spatula to create that classic cheesesteak texture.
Combine steak and veggies.
Once all the steak is cooked, return the onions, peppers, and mushrooms to the skillet. Toss everything together for 1 to 2 minutes so the flavors mix and everything is hot. Taste and adjust seasoning with more salt and pepper if needed.
Add the cheese.
Divide the steak and veggie mixture into four mounds in the skillet. Place 2 slices of provolone on top of each mound. Reduce the heat to low and cover the skillet with a lid or a sheet of foil. Let the cheese melt for 1 to 2 minutes until it is soft and gooey. If you like Cheez Whiz, drizzle it over the meat right before serving.
Toast the rolls.
While the cheese melts, preheat your broiler on low. Split the hoagie rolls and brush the cut sides lightly with melted butter. Place them on a baking sheet, cut side up, and toast under the broiler for 1 to 2 minutes until lightly golden. Watch carefully so they do not burn.
Assemble the sandwiches.
Spread a thin layer of mayonnaise inside each roll if you like. Use a spatula to scoop each cheesy mound of steak and veggies into a toasted roll. Serve immediately while everything is hot and melty.