Generously season both sides of roast with salt and pepper. Sprinkle flour over the top and bottom until well coated, and pat it into the meat. Shake off any excess.
Heat oil in a large skillet over medium-high heat until hot. Sear the roast on all sides for a few minutes each, until well browned. Remove from the skillet and set aside.
Reduce the heat to medium-low and stir in mushrooms (if using) and butter; cook for 3-4 minutes. Keep stirring so it doesn’t burn.
Stir in onion; cook for 3 to 5 minutes, until onions are translucent and begin to brown. Add garlic, stir for about a minute.
Stir in 1 1/2 tablespoons flour; cook and stir for about 1 minute. Add tomato paste in middle of skillet and mix through; cook for another minute.
Slowly add beef stock, stir to combine, and return to a simmer. Remove skillet from the heat.
Place carrots and celery in the slow cooker. Place roast over the vegetables and pour in any accumulated juices.
Pour onion (and mushroom) mixture over the top of the roast. Cover slow cooker, turn to high and cook the roast for 5-6 hours, until the meat is fork tender. (I opened lid halfway through cook time to stir juices.)
Skim off any fat from the surface and move the meat and veggies to a serving plate. Season with salt and pepper to taste.