In a large bowl, mix the ground beef, egg, breadcrumbs, milk, Parmesan cheese, salt, black pepper, garlic powder, and Italian seasoning until just combined.
Form the mixture into evenly sized meatballs. About 1 Tablespoon in size.
Heat the oil in a large pot or Dutch oven over medium heat and brown the meatballs on all sides, working in batches if needed.
Remove the meatballs from the pot and set aside.
In the same pot, stir in the onion, carrots, and celery and cook until softened, about 5–6 minutes.
Add the garlic and cook for 1 minute until fragrant.
Add the butter, and sprinkle in the flour and stir well to coat the vegetables, cooking for 1–2 minutes.
Add the tomato paste and cook for 1 minute, stirring constantly.
Slowly pour in the beef broth while stirring, then add the potatoes, Worcestershire sauce, and bay leaf.
Bring the stew to a simmer and cook for 15 minutes, or until the potatoes are just beginning to soften.
Return the meatballs to the pot and continue simmering for 10–15 minutes, until the meatballs are cooked through and the potatoes are tender.
Stir in the frozen peas and cook for 5 minutes before serving.
Remove the bay leaf and serve hot.