Place chicken pieces in a large bowl and add buttermilk, ensuring the chicken is completely covered. Cover the bowl with a lid or plastic wrap and refrigerate it for 8-12 hours or overnight. If preferred, you can marinate chicken in a gallon-size freezer bag. After marinating, remove the chicken from the refrigerator and let it sit for 30 minutes.
Place oil or fats in a large skillet and heat over medium-high to 365° F.
In a large bowl, whisk together until well combined flour, baking powder, salt, pepper, garlic powder, onion powder, paprika, and cayenne pepper.
Preheat oven to 350° F.
Drain chicken. Working with one piece of chicken at a time, shake off excess buttermilk, but make sure there is still a thin coating. Dredge in flour mixture, pressing the flour mix to adhere to chicken. Place chicken in hot oil, 3-4 pieces at a time. Cook for 5-7 minutes, watching carefully to keep from browning too much. Turn chicken over, cover pan with lid, and cook for another 3-5 minutes.
Remove chicken from oil and, place in a single layer on a baking sheet, and fry remaining pieces. Once all of the chicken is done, place in a preheated oven and bake for 15 minutes. This finishes cooking the chicken through.