Whisk the dry brine ingredients together in a small bowl.
Line a rimmed baking sheet with foil and place the turkey, breast side up, on the sheet. Using your fingers, separate the skin from the meat of the turkey. Rub the bird all over with the dry brine, including under the skin and on the underside of the bird. Refrigerate uncovered for at least 24 hours, but 2-3 days yields the best results.
Preheat an oven to 400 F. In a large roasting pan or a large rimmed baking sheet lined with foil, mix the onions, carrots, and celery together. Top with the bay leaves, sage, thyme, and rosemary. Remove the dry brined turkey from the fridge and place it on top of the veggies. Smear the softened butter all over the skin and under it, evenly coating the turkey.
Roast until a probe thermometer registers 165 F at the thickest part of the thigh and 155 F at the thickest part of the breast, about 70-80 minutes. Remove from the oven and transfer to a cutting board and lightly tent with foil. Rest 20-30 minutes before slicing.
Pour the turkey drippings from the pan into a heat-safe container, pressing on the veggies to extract as much as possible. Set aside for the gravy.
To make the gravy: In a medium saucepan, melt the butter over medium heat. Add the flour and whisk to combine. Cook, whisking constantly, for 2 minutes. Gradually whisk in all the turkey drippings. Whisk in the warm turkey stock until totally smooth with no lumps. Bring to a simmer and simmer over low heat for 15-20 minutes, until desired thickness. Season to taste with salt and pepper.