Edit file File name : JsonResourceHelper.php Content :<?php namespace App\Helpers; use Closure; use Illuminate\Http\Resources\Json\JsonResource; class JsonResourceHelper extends JsonResource { public function __construct($resource) { $this->resource = $resource; } public function getResourceCollection($callback): array { $data = []; foreach ($this->resource as $resource){ $data[] = $this->getResource($resource, $callback); } return $data; } public function getResourceItem($callback) { return $this->getResource($this->resource, $callback); } public function getResource($resource, $closure) { if (!isset($resource)) return null; return new (new class($resource, $closure) extends JsonResourceHelper { protected Closure $closure; public function __construct($resource, $closure) { parent::__construct($resource); $this->closure = $closure; } public function toArray($request) { return ($this->closure)($this); } })($resource, $closure); } public function try($valueAsFunction, $defaultResult = '') { try { return $valueAsFunction($this); } catch (\Error|\Exception) { return $defaultResult; } } public static function getClass($modelClassName, $arrayCallBackFunction) { $_SERVER['FunctionFor_' . $modelClassName] = $arrayCallBackFunction; return new class(null, null) extends JsonResource { public function toArray($request) { return $_SERVER['FunctionFor_' . get_class($this->resource)]($this); } }; } } Save