Combine the spices in a small dish, then rub over both sides of the chuck roast or beef brisket. Let it sit an hour at room temperature or do this the night before, seal in a zipper bag, and refrigerate until you're ready to cook.
Preheat the oven to 350. In a large oven-proof skillet or Dutch oven, heat the oil, then brown the meat on all sides. Remove the meat to a dish, pour off any excess fat but leave a bit in the pot. Pour the broth in and deglaze the pan, turning the heat to medium while stirring the broth to loosen any browned bits on the pan's bottom.
Put the roast back into the pan with the broth and browned bits. Put the garlic and onions on top, then cover and bake an hour.
Remove the cover, turn the roast so it's now on TOP of the onions and cook uncovered another hour or so. Keep an eye on it and add more liquid if you need to. After the first half hour, stir the onions so they brown evenly.
Now, put the cover back on, again stirring and checking to make sure there's some liquid. Add more water or broth if you need to. Cook another hour or so, until it basically falls apart if you pull at it with a fork. Brisket will take a bit longer than the chuck roast.
Take the meat out and put it on a plate, covering loosely with foil. If you're eating it tomorrow, let it cool a bit, then cover tightly and refrigerate. That's what I did. If you did, pull it out to come to room temperature while you start the vegetables. If you want to do it all on the same night, start the vegetables about 1/2 an hour before the pot roast should be done.
Simmer the carrots and celery and potatoes in a bit of salted water until tender. Large chunks (1") will take about 25 minutes. Drain them but leave a bit of liquid in the pot if you refrigerated the pot roast. (If not, add the vegetables to the liquid with the pot roast.)
Slice the pot roast if it isn't totally falling apart. Put in the pan with the cooked vegetables and bring to a simmer, then serve.