2 medium leeks, white and pale green parts only, halved lengthwise, thinly sliced crosswise
6 garlic cloves, thinly sliced
1 (3") piece ginger, peeled, cut into matchsticks
¾ tsp. ground turmeric
¾ tsp. ground coriander
½ tsp. ground cardamom
1 serrano chile, thinly sliced
12 oz. baby Yukon Gold or red potatoes, halved
2 (13.5-oz.) cans unsweetened coconut milk
2 celery stalks, thinly sliced, plus leaves for serving (optional)
1½ cups oyster crackers
1 tsp. paprika
2 limes, divided
Preparation
Season cod all over with 1½ tsp. salt; set aside. Heat 3 Tbsp. ghee in a medium Dutch oven over medium. Cook leeks, garlic, and ginger, stirring occasionally, until softened but not browned, about 3 minutes. Add turmeric, coriander, and cardamom and cook, stirring, until fragrant, about 30 seconds. Add chile, potatoes, coconut milk, 1 tsp. salt, and ¾ cup water; bring to a boil (still over medium). Immediately reduce heat so soup is at a bare simmer. Cover, leaving lid slightly askew, and cook until potatoes are barely fork-tender, 10–12 minutes.
Carefully nestle reserved fish into pot, spoon some broth over, and cover, leaving lid slightly askew. Cook at a bare simmer 4 minutes, then stir in celery. Cook until fish is opaque and flakes easily, about 5 minutes. Taste chowder and season with more salt if needed.
Meanwhile, heat remaining 2 Tbsp. ghee in a small skillet over medium-low. Add crackers and stir well to coat. Cook, stirring often, until golden brown, about 5 minutes. Remove from heat and add paprika; toss to evenly coat.
Slice 1 lime in half and squeeze juice into chowder. Taste and season with more salt if needed. Ladle into bowls, breaking fish into large pieces. Scatter celery leaves over chowder if using and top with crackers. Slice remaining lime into wedges and serve alongside.