Place onions, garlic into a large food processor and process until finely chopped but not liquefied.
Add meat and all the seasonings and grind for another 3-5 minutes. Do not skip this step. If you do, it will be like ground beef with some weird seasonings in it. Grind it until it's a big, huge, sticky mess that you wonder how you will ever clean up.
Since writing this recipe I've discovered a faster way to do this, which is to use your stand mixer with the paddle. Paddle the living daylights out of the meat with the spices until it's a sticky mess. This is a lot easier to clean up than a blender, and the end result is the same. So use whatever you have that works for you.
Put into a foil pan, and smooth out the top, and bake at 350 for 60 mins, or until it reaches an internal temperature of 175-180
Take it out of the oven and drain all the fat.
Cover it with foil and then place something heavy on it to compress it. I put a cast iron skillet on top and then carefully placed 3 cans of beans on top of the skillet to compress it.
Let it rest for 30 mins and then slice into thin slices.
I think the final fat content and calories are lower because I ended up draining out at least half a cup of fat, but I don't know how to account for that in the macros.
Use any kind of relatively fatty ground meat like beef, lamb, pork, or a combination. If you use chicken or turkey, you may have a drier, leaner result.
Paddle the living daylights out of that mixture. Let me tell you--it's all in the paddling of that meat. Without this, you just have a meatloaf texture. Paddling matters! Read the article above for the process of protein extraction, and why it matters.
Put it into a loaf pan and cook it. Then you want to weight down that cooked loaf. This is not the time for a shortcut. Put a heavy object on that loaf, like a skillet or two cans of beans, and let it get quite thoroughly smooshed so that your homemade gyro meat has the same texture as the restaurant gyro meat does.
This meat freezes well if properly wrapped. I suggest you leave the leftovers in a loaf, wrap well with foil, and then put into a plastic ziptop bag. Alternatively, you can use a FoodSaver (see my FoodSaver review here).