Heat olive oil in a large pot or Dutch oven over medium-high heat. Brown the beef cubes in batches, ensuring all sides are seared. Remove and set aside.
In the same pot, add the onions and cook until softened and slightly caramelized, about 5-7 minutes. Add the garlic and cook for another minute until fragrant.
Stir in the paprika, ensuring it coats the onions and garlic evenly. Add the tomato paste and caraway seeds (if using), stirring everything together for about 1 minute.
Return the browned beef to the pot. Add the carrots, bell pepper, and potatoes. Mix well.
Pour in the beef broth (or water), ensuring the ingredients are just covered. Bring the mixture to a simmer.
Lower the heat and let the goulash simmer gently for 1.5 to 2 hours, or until the beef is tender and the flavors have melded together. Stir occasionally.
If you prefer a thicker goulash, mix 1 tablespoon of flour with a small amount of water to make a slurry, then stir it into the stew. Let it simmer for another 10 minutes to thicken.
Serve the goulash hot, garnished with a dollop of sour cream and fresh parsley if desired.