Cook the Beef: Place the flank steak in a large pot. Add the quartered onion, green bell pepper, bay leaves, salt, and pepper. Pour in enough water to cover the meat.Bring to a boil, then reduce the heat and simmer gently for about 1.5 to 2 hours, until the meat is tender and easily shreds with a fork.Remove the beef and let it cool slightly. Strain and reserve the cooking liquid (you'll use some later).
Shred the Meat: Once the beef is cool enough to handle, shred it using two forks. Set aside.
Prepare the Sauce: In a large skillet or Dutch oven, heat the olive oil over medium heat. Add the sliced onion and red bell pepper. Sauté until they soften and begin to caramelize, about 5-7 minutes.Add the minced garlic and cook for another minute until fragrant.Stir in the diced tomatoes, tomato sauce, white wine (if using), cumin, oregano, smoked paprika, and red pepper flakes. Let the mixture simmer for 3-4 minutes.Pour in the beef broth and add about 1 cup of the reserved beef cooking liquid. Stir well and bring to a simmer.
Combine & Simmer: Add the shredded beef to the sauce, stirring to coat the meat evenly.Reduce the heat to low and let everything simmer together for 20-30 minutes. This allows the flavors to meld beautifully. Taste and adjust seasoning with salt and pepper as needed.
Serve: Remove bay leaves. Garnish with freshly chopped cilantro or parsley and a squeeze of lime juice if desired.Serve Ropa Vieja over white rice, with a side of black beans, or with warm crusty bread.