In a large pot or Dutch oven, warm the oil over medium high heat. Add the beef and toss to coat. Cook for a few minutes, turning occasionally, until browned on all sides, about 10 minutes.
Add the onion, bay leaves, and 2 cups of beef broth. Bring to a boil and then reduce to a simmer. Cover and continue simmering over low heat until the beef is fork tender, about 1½-2 hours.
Add the potatoes, celery, carrots, diced tomatoes, tomato paste, Worcestershire, cabbage, and remaining 2 cups of broth. Stir to combine and cover to bring to a boil.
Reduce to a simmer, cover, and continue simmering over low heat until the potatoes are tender, about 20-30 minutes. Uncover, stir, and taste the stew. Add salt, only as needed.