Pat the beef cubes very dry with paper towels. Season generously all over with salt and pepper.
Heat 1 tablespoon of oil in a large Dutch oven or heavy pot over medium high heat. Working in batches, sear the beef until deeply browned on all sides, about 5-7 minutes per batch. Avoid crowding. Transfer browned beef to a plate.
Reduce heat to medium. Add the remaining 1 tablespoon of oil to the pot. Add the diced onions, carrots, and celery. Cook, stirring occasionally, for 6-8 minutes until softened.
Stir in the tomato paste and cook, stirring constantly, for 2-3 minutes. Add the paprika and stir for 30 seconds until fragrant.
Pour in the red wine to deglaze the pot, scraping up all the browned bits from the bottom. Simmer for 2 minutes.
Return the seared beef and any juices to the pot. Add the beef broth and bay leaves. Stir to combine.
Bring to a boil, then immediately reduce heat to low. Cover with a tight fitting lid and simmer gently for 2 hours and 30 minutes.
After 2.5 hours, check beef for tenderness (it should shred easily with a fork). If needed, simmer longer in 15 minute increments.
Once tender, taste and adjust seasoning with salt and pepper. For a thicker stew, simmer uncovered for the final 20-30 minutes.
Remove bay leaves. Serve hot in bowls, garnished with fresh parsley.