Melt one tablespoon of butter in a large pot over medium heat. Add the giblets and brown on all sides.
Add the celery, garlic, onion, thyme, and bay leaf to the saucepan and sauté for 3-5 minutes.
Once the ingredients are simmering, add water and cover for 1-2 hours. If using turkey giblets, adjust the amount of water appropriately since they are larger. I used smaller chicken giblets in this recipe.
Strain the stock with a fine-mesh strainer and scoop the giblets out using a slotted spoon. Set the stock aside and finely chop the giblets and the hard-boiled egg.
Using a cast-iron skillet, melt the remaining 3 tablespoons of butter. Once the butter melts, add in the flour and whisk until fully incorporated.
Gradually whisk the strained broth into the roux. Once that is fully mixed, add the pan drippings. Start with 2 cups and add more to achieve desired consistency. Adjust seasonings to taste with chicken bouillon, salt, and pepper.
Add the chopped boiled egg and giblets and simmer while stirring for 2-3 minutes. Add the half-and-half or milk. Adjust seasonings to taste.
Serve hot over chicken or turkey and mashed potatoes!