Melt butter in a large skillet over medium-high heat. Add onions and green peppers and cook until softened. Remove and set aside.
In a large bowl, add ground beef, onions, green peppers, bread crumbs, milk, garlic powder, black pepper, onion powder, paprika, thyme, Worcestershire sauce, and Parmesan cheese. Mix until fully incorporated.
In a large skillet over medium-high heat. Cook hamburger steaks in batches of 3-4 for 5-6 minutes on each side, then remove and transfer to a plate.
Lower the heat to medium, then sprinkle flour over the drippings and whisk in to make a roux. Add garlic powder, onion powder, black pepper, and beef broth. Whisk continuously until the gravy starts to thicken.
Add hamburger steaks into the gravy and toss to coat. Lower the heat to low and let it simmer for 5 minutes.
Serve over mashed potatoes or rice and enjoy!