Prep the cabbage: Bring a large pot of water to a boil. Carefully remove 8–12 large outer leaves from the cabbage. Blanch the leaves for 60–90 seconds until pliable, then transfer to a towel to dry.
Trim the thick stem on each leaf so it folds easily.
Mix the meatballs: In a large bowl, combine ground meat, breadcrumbs, egg, grated onion, garlic, parsley, oregano, smoked paprika, salt, pepper, and milk. Mix gently with your hands until just combined. Don’t overwork it.
Shape the meatballs: Form 12–16 golf ball–sized meatballs.
Keep sizes consistent so they cook evenly.
Wrap in cabbage leaves: Place a meatball near the base of a cabbage leaf. Fold the sides over and roll up like a small parcel. If your leaves are small, use two overlapping leaves.
Preheat the air fryer: Set to 375°F (190°C) for 3–5 minutes.
Lightly spray the basket with oil to prevent sticking.
Air fry in batches: Arrange wrapped meatballs seam-side down in a single layer. Lightly mist the tops with oil. Cook for 10–12 minutes, turning once halfway through, until the meat is cooked through and the cabbage edges are lightly browned.
Internal temperature should reach 165°F (74°C) for poultry or 160°F (71°C) for beef/pork.
Make the dipping sauce (optional): Stir yogurt or sour cream with lemon juice, salt, and dill. Adjust to taste.
Serve: Plate with lemon wedges and your favorite sides—rice, mashed potatoes, or a crisp salad. Spoon over the sauce or serve on the side.