In a large mixing bowl, pour in the buttermilk and add the pieces of chicken. Ensure each piece is well-coated. Cover with plastic wrap and refrigerate for at least 2 hours (or overnight for best results).
In another bowl, whisk together the flour, paprika, garlic powder, onion powder, salt, black pepper, and optional cayenne pepper until well combined.
In a frying pan or deep fryer, heat enough oil to cover the chicken pieces by about 2 inches. Heat the oil to 350°F (175°C).
Remove the chicken from the buttermilk and allow excess liquid to drip off. Dredge each piece in the flour mixture, ensuring they are fully coated. Shake off any excess flour.
Carefully place the breaded chicken pieces in the hot oil, working in batches if necessary. Fry for about 12-15 minutes, turning occasionally, until golden brown and cooked through. The internal temperature should reach 165°F (75°C).
Once cooked, remove the chicken pieces and place them on a plate lined with paper towels to drain excess oil. Let the chicken rest for a few minutes before serving.