In a large bowl, combine the ground beef, breadcrumbs, egg, garlic, Parmesan cheese, parsley, Italian seasoning, onion powder, salt, and black pepper.
Mix gently until just combined.
Roll into 1½-inch meatballs.
Heat the olive oil in a large Dutch oven over medium-high heat.
Brown the meatballs for about 5 to 6 minutes, turning occasionally. They do not need to be fully cooked. Transfer them to a plate.
In the same pot, cook the onion, carrots, and celery for about 5 minutes until softened.
Add the garlic and cook for 30 seconds.
Stir in the tomato paste and cook for 1 minute.
Pour in the beef broth and diced tomatoes.
Add the potatoes, Worcestershire sauce, thyme, Italian seasoning, and bay leaf.
Bring the stew to a gentle boil.
Return the browned meatballs to the pot.
Reduce the heat to low, cover, and simmer for 30 to 35 minutes until the potatoes are tender and the meatballs are fully cooked.
Stir in the frozen peas during the last 5 minutes of cooking.
Remove the bay leaf.
Taste and season with additional salt and black pepper if needed.
Garnish with fresh parsley before serving.