Prepare your lettuce cups by gently separating the leaves from the head, washing them thoroughly, and setting them aside to dry completely. For maximum crispness, you can place them in the refrigerator while preparing the filling.
Heat olive oil in a large skillet over medium-high heat until shimmering but not smoking. Add the diced onion and cook for 3-4 minutes until it begins to soften and become translucent.
Add the minced garlic and grated ginger to the pan and stir continuously for about 30 seconds until fragrant. Be careful not to burn the garlic, as it can quickly become bitter.
Incorporate the ground beef into the skillet, breaking it apart with a wooden spoon. Cook for 5-7 minutes until the meat is no longer pink and has started to brown slightly.
Pour in the soy sauce, hoisin sauce, rice vinegar, sesame oil, and sriracha (if using). Stir well to combine all the flavors evenly with the meat. Let the mixture simmer for 2 minutes to allow the flavors to meld.
Add the diced bell pepper and water chestnuts to the skillet, cooking for another 2-3 minutes until the peppers slightly soften but still maintain some crunch.
Remove the pan from heat and fold in most of the green onions and cilantro, reserving some for garnish. Give everything a good stir to incorporate.
Serve the beef mixture immediately with the prepared lettuce leaves and optional toppings, allowing everyone to assemble their own wraps by spooning the filling into lettuce cups and adding desired garnishes.