Mix the marinade ingredients.
Marinate the pork for at least 2 hours. If you have time, overnight is even better.
Roast at 350°F for 1-1 1/2 hours (if using pork loin) or 3 hours (if using pork shoulder) until the internal temperature reaches 145°F. Let rest for 3 minutes. We recommend cooking to an internal temperature of 180°F for a better eating experience.
Let it cool and slice thinly.
Cut the midnight buns lengthwise.
Spread a thin layer of yellow mustard on each side.
Place the ingredients in layers in this order: bottom bun, ham, pork, Swiss cheese, pickles, top bun.
Spread butter on the outside of each sandwich or with a thin layer of mayonnaise (a Cuban trick to make it brown better).
Heat a sandwich maker, or a cast iron skillet or griddle with another heavy pan on top.
Press the sandwich over medium heat for 3-5 minutes, turning halfway through cooking if you didn't use a sandwich maker.
The sandwich should be crispy on the outside, with the cheese completely melted and the bread compressed.