Heat oil over medium heat in a large cast-iron skillet or nonstick skillet until shimmering. Add shallot and cook, stirring frequently, until golden brown, about 5 minutes.
Add pine nuts and cook until starting to brown, about 2 minutes. Add garlic, coriander, cumin, paprika, salt, black pepper, cayenne, cinnamon, and cloves; cook 30 seconds. Transfer shallot mixture to a large bowl with lamb, parsley and mint; mix to combine.
Divide mixture into 8 even portions.
Form each into a 4-inch-long log. Push a skewer through the length of each log, leaving a 4-inch tail on one end and a 1-inch tail on the other; form meat around skewer to secure.
Cook according to directions below using the stove, grill or broiler.
Stove: Preheat a 10- or 12-inch cast-iron skillet over medium high heat for 5 minutes (just wipe out the skillet you used to cook the shallot and spices). Add 4 lamb skewers and cook, turning every 2–3 minutes, until well charred and an instant-read thermometer inserted in the centers registers 145ºF (*see recipe notes below), about 8 minutes total. Transfer skewers to a platter and repeat cooking process with remaining 4 skewers.
Grill: Preheat a grill to medium-high for 5–10 minutes; brush grill grate clean. Arrange lamb skewers over grate and grill, turning every 2 minutes, until charred and an instant-read thermometer registers 145ºF (*see recipe notes below), about 6 minutes total.
Broiler/oven grill: heat broiler to high with rack set 10-inches from element (middle rack). Arrange lamb skewers on a foil-lined baking sheet. Broil, turning every 3 minutes, until well-browned and an instant-read thermometer inserted in the center registers 145ºF (*see recipe notes below), 10–12 minutes.
To assemble a platter: arrange skewers on a large platter. Place a small bowl of yogurt sauce in the middle then arrange naan, shredded cabbage, cucumber, and fresh herbs around the rest of the platter. Sprinkle sumac over top.