$this->id, 'title' => $this->group_name, 'layout' => $this->product_layout, 'group_order' => $this->group_order, 'items' => $this->whenLoaded('featuredVariants', function () use ($request) { return $this->featuredVariants->map(function (FeaturedVariant $featuredVariant) use ($request) { $variant = $featuredVariant->variant; $variantResource = (new ProductVariantResource($variant))->toArray($request); if ($this->product_layout === 'row' || $this->product_layout === 'column_with_cart' || $this->product_layout === 'vertical_with_cart') { // Devuelve el Product Variant Resource completo como pidio el usuario // "Que todo devuelva el product variant resource" return $variantResource; } // Para column_with_image o vertical_with_image if ($this->product_layout === 'column_with_image' || $this->product_layout === 'vertical_with_image') { if (isset($variantResource['images']) && count($variantResource['images']) > 0) { $variantResource['images'] = [$variantResource['images'][0]]; } return $variantResource; } return $variantResource; }); }), ]; } }