Make the filling: In a large skillet, heat the olive oil over medium-high heat. Add the cactus and onion, and cook until tender, 3–5 minutes. Add the garlic and salt, and cook for another 2 minutes, until the garlic is fragrant. Transfer to a medium bowl and set aside.
Make the tamales: In a large bowl, combine the masa harina, rice flour, salt, and baking powder.
Add the melted lard and 3 cups of beef stock, and mix with an electric mixer on low speed until partially combined. Add the remaining 3½ cups of beef stock and continue mixing by hand until a wet dough forms. The dough should have the consistency of a thick hummus; if it is too dry, add more stock or water. And if it is too wet, add more masa harina, ¼ cup at a time.
Soak the corn husks in water until softened slightly, about 2 minutes.
Scoop about 4 tablespoons of the masa mixture onto the center of the smooth side of a corn husk. Spread into a flat rectangular shape, leaving the bottom third of the corn husk empty. Add about a tablespoon of the cooked cactus mixture, 1–2 tablespoons queso fresco, and 2 tablespoons salsa verde to the center of the masa rectangle.
Bring the long sides of the corn husk together to encase the filling inside the masa, then fold the bottom of the corn husk up. Leave the top open. Tie a strip of corn husk around the tamale to secure. Repeat with the remaining ingredients.
Fill a large pot with the water. Set a smaller pot lid upside down in the bottom of the pot, then layer 5–6 corn husks on top to create a nest. Stack the assembled tamales on top of the nest with the open ends of the tamales facing up, filling the pot to the top.
Cover the pot with aluminum foil and steam the tamales over medium heat for 45–60 minutes. (To check if the tamales are cooked, carefully remove and open a tamale from the very top of the pot.The masa should separate easily from the corn husk.)
Remove tamales from the steamer and let cool until ready to eat.