In a large bowl, combine the sliced onions, minced garlic, vegetable oil, vinegar, water, ground cumin, ground coriander, paprika, salt, and black pepper.
Add the meat cubes to the marinade, ensuring they are well coated.
Cover the bowl and refrigerate for at least 4 hours, or overnight for best results.
If using wooden skewers, soak them in water for at least 30 minutes to prevent them from burning.
Thread the marinated meat cubes onto the skewers, alternating with slices of onion if desired.
Preheat your grill to medium-high heat.
Place the skewers on the preheated grill.
Grill the shashlyk for about 10-15 minutes, turning occasionally, until the meat is cooked through and has a nice char on the outside.
Cooking time may vary depending on the size of the meat cubes and the type of meat used.
Remove the skewers from the grill and let them rest for a few minutes.
Garnish with fresh herbs such as parsley or cilantro.
Enjoy your meal!