Pat the pork dry and season all over with salt and pepper. Sprinkle one side with 1 tablespoon of the spice blend and use your hands to rub it all over. Flip and add the remaining 1 tablespoon of spices and rub until the shoulder is completely coated with the blend.
Heat the oil in a large pot over medium-high heat. Once hot, add the pork and cook without moving for 3–4 minutes until a golden crust forms. Flip and cook for 3–4 minutes per side until it is seared on all sides.
Add the onion, bay leaves, and grapefruit juice. Pour in enough water to fully cover the pork. Season with salt and pepper and bring to a boil.
Simmer the pork:
Reduce heat to low and simmer, covered, for 3 hours. Remove the lid and simmer, uncovered, for 30–45 minutes to reduce the liquid. Taste and season. The pork should be very tender. At this point, you can let it cool and refrigerate overnight, or you can continue with the recipe as is. I find refrigerating makes it easier to remove the fat. This recipe assumes it has been refrigerated overnight.
Shred the pork:
Using a spoon, remove the fat layer from the top of the pork. Remove the pork from the pot and shred it with your fingers or two forks. If there are large pieces of fat, you can discard them.
Finish the pork:
Return the pork to the pot and transfer to the stovetop over medium heat. Let it bubble–uncovered–until all the liquid evaporates. Toward the end of this process, be sure to stir regularly and adjust the heat as needed to prevent the pork from sticking.
Cook the bacon (optional):
Place the bacon in a cold skillet and turn the heat to medium. Cook, occasionally turning, until all the fat is rendered and the bacon is very crispy. Transfer to a paper towel-lined plate. Once the bacon is cool enough to handle, dice it or crumble it into small pieces.
Broil the pork:
Mix the crumbled bacon with the shredded pork.
Turn on the broiler. Arrange the pork on a baking sheet. Transfer to the broiler for 3–4 minutes until crispy edges begin to form on top. Remove from the broiler and cover with foil. Note: At this point, I recommend washing out the pot used for the pork and reusing it for the mac and cheese.
Start the mac and cheese:
Preheat oven to 400ºF.
Combine the milk and cream in a large measuring glass.
Bring a large pot of salted water to a boil and cook the pasta until 1 minute under al dente. Drain and set aside.
Prepare the béchamel:
In a large pot, melt the butter over medium heat. Once bubbly and frothy, add the flour and stir regularly for 3–4 minutes until it turns golden and has a nutty aroma.
Turn the heat to medium-low. Add ¼ of the cream and milk mixture to the flour and whisk constantly until a slurry forms. Cook for 1 minute. Add another ¼ of the mixture and whisk it vigorously until combined. Continue adding the milk and cream mixture in increments, whisking after each addition until the sauce is smooth and creamy. Season the sauce with salt, white pepper, and a pinch of cayenne powder to taste.
Finish the cheese sauce:
Turn the heat to low. Stir a handful of the shredded cheese and stir until melted. Continue adding the cheese in increments until all of the mild and sharp cheeses have been fully incorporated and melted. If it’s too thick, whisk in a splash of milk or cream. Taste and season.
Add the cooked pasta to the cheese sauce and toss to coat. Turn off the heat.
Bake the carnitas mac and cheese:
Add half of the mac and cheese to a large baking dish. Add half of the carnitas and toss to coat. Pour the remaining mac and cheese into the dish. Scatter the remaining carnitas on top. Transfer to the preheated oven for 5–10 minutes until the cheese sauce is bubbly, and the carnitas are warmed through again.
To serve:
Serve with a sprinkle of chili flakes or with minced scallions on top if you like. Enjoy!