In a large bowl, combine the ground beef, chopped onion (if using), breadcrumbs, milk, garlic powder, onion powder, Worcestershire sauce, salt, and pepper. Mix until just combined; avoid over-mixing to keep the meat tender.
Form the mixture into 4 to 6 oval or round patties, about 1/2 inch thick, making a small indentation in the center of each patty (this helps them cook evenly and prevent puffing up).
2. Cook the Hamburger Steaks:
Heat 2 tablespoons of vegetable oil in a large skillet over medium-high heat.
Once the oil is hot, add the patties to the pan. Cook for about 4-5 minutes per side, or until browned and cooked through (internal temperature should be 160°F). Remove the patties from the skillet and set them aside on a plate.
3. Make the Gravy:
In the same skillet, reduce the heat to medium and add the butter. Once melted, add the sliced onions and cook, stirring occasionally, for 5-7 minutes, or until the onions are soft and caramelized.
Sprinkle the flour over the onions and stir well to combine. Cook for 1-2 minutes to form a roux (this helps thicken the gravy).
Gradually pour in the beef broth, stirring constantly to avoid lumps. Add Worcestershire sauce, and season with salt, pepper, and any additional seasonings you prefer.
Bring the mixture to a simmer and cook for about 3-5 minutes, until the gravy has thickened.
4. Combine the Patties and Gravy:
Return the hamburger steaks to the skillet, spooning some of the gravy over the patties.
Reduce the heat to low, cover the skillet, and let it simmer for an additional 5 minutes, allowing the patties to absorb some of the gravy flavor.
5. Serve:
Serve the hamburger steaks with the gravy spooned over the top. Pair with mashed potatoes, rice, or your favorite vegetables for a complete meal.