Pat the beef dry. Season with salt, pepper, garlic powder, and onion powder. Sprinkle flour over the beef and toss to coat.
Heat olive oil in a large skillet over medium-high heat. Sear beef in batches for about 2 minutes per side, until browned. Transfer beef to the slow cooker.
In the same skillet, sauté the onion for 3 to 4 minutes, scraping up browned bits. Add mushrooms (if using) and cook 3 minutes more. Add garlic and cook 30 seconds.
Stir in beef broth, Worcestershire sauce, soy sauce, and tomato paste. Whisk until smooth. Add thyme, rosemary, and bay leaf. Simmer for 2 minutes.
Pour the broth mixture into the slow cooker. Cover and cook on LOW for 7 to 8 hours (or HIGH for 4 to 5 hours) until beef is very tender.
Whisk cornstarch with cold water until smooth. Stir into the slow cooker. Cook on HIGH for 15 to 20 minutes until the gravy thickens.
Remove bay leaf. Stir in butter (optional). Serve hot over mashed potatoes, egg noodles, or rice. Top with parsley if desired.