In a large bowl, combine the shredded cabbage, grated carrot, and sliced onion.
Pour the boiling water over the vegetables and let sit for 5 minutes. Drain.
Add the white vinegar, dried oregano, and salt to the vegetables. Toss well to combine.
Cover and refrigerate for at least 1 hour, or overnight for best results.
In a blender, combine the chopped tomatoes, onion, garlic, and water. Blend until smooth.
Heat the vegetable oil in a saucepan over medium heat. Add the blended tomato mixture.
Season with salt and pepper to taste. Simmer for about 10 minutes, stirring occasionally. Remove from heat and set aside.
In a large bowl, combine the masa harina, warm water, and salt. Mix until a dough forms.
Knead the dough for a few minutes until smooth and pliable. If the dough is too dry, add a little more water. If it’s too wet, add a little more masa harina.
Divide the dough into 8 equal portions and roll each portion into a ball.
Take one dough ball and flatten it into a disc about 1/4 inch thick.
Place a tablespoon of refried beans, a tablespoon of grated cheese, and a tablespoon of cooked pork (if using) in the center of the disc.
Fold the edges of the dough over the filling and pinch to seal. Gently flatten the filled dough ball into a thick disc, being careful not to let the filling spill out.
Heat a large skillet or griddle over medium heat. Lightly grease with vegetable oil.
Cook the pupusas for about 3-4 minutes on each side, or until golden brown and crispy.
Enjoy your meal!