norujukan = $norujukan; } public function getMarhunDetails($tagsyarikat) { $CallableHttp = $tagsyarikat == CompanyStatus::COM_PKB ? Http::arrahn() : Http::arrahn_koop(); $getMarhunDetails = function ($x) use($CallableHttp) { return $CallableHttp->get('/api/marhun/' . $x)->json(); }; $getMarhunTypeFullName = function ($code) use($CallableHttp) { return $CallableHttp->get('/api/jemas/nama_marhun', ['marhun' => $code['marhun']])->json()['descpt']; }; $formatMarhunDetailData = function ($x) use($getMarhunTypeFullName) { return array_map(function ($y) use ($getMarhunTypeFullName) { $y['marhun'] = $getMarhunTypeFullName($y); return $y; }, $x); }; $marhunDetailPipelines = [ fn($x) => $getMarhunDetails($x), fn($x) => $x == null ? [] : $x, fn($x) => $x[0], fn($x) => $formatMarhunDetailData($x), ]; return array_reduce($marhunDetailPipelines, fn($x, $y) => $y($x), $this->norujukan); } public static function from($norujukan) { return new static($norujukan); } }