diff --git a/src/Illuminate/Http/Resources/Json/JsonResource.php b/src/Illuminate/Http/Resources/Json/JsonResource.php index 7590a95d8eb0..97b0255fcc5d 100644 --- a/src/Illuminate/Http/Resources/Json/JsonResource.php +++ b/src/Illuminate/Http/Resources/Json/JsonResource.php @@ -158,13 +158,12 @@ public function resolveResourceData(Request $request) */ public function toArray(Request $request) { - if (is_null($this->resource)) { - return []; - } - - return is_array($this->resource) - ? $this->resource - : $this->resource->toArray(); + return match (true) { + is_null($this->resource) => [], + is_array($this->resource) => $this->resource, + $this->resource instanceof Collection => $this->resource->map(fn ($val) => $val instanceof JsonResource ? $val->resolve($request) : $val)->toArray(), + default => $this->resource->toArray($request), + }; } /**