products->getById($id); abort_if($product === null, Response::HTTP_NOT_FOUND); $collection = $product['collections'][0] ?? null; $variantsData = collect($product['variants']) ->map(fn (array $variant) => [ 'id' => $variant['id'], 'price' => $variant['prices'][0]['price'] ?? null, 'image' => $variant['media'][0]['url'] ?? null, ]) ->values() ->all(); $firstVariant = $product['variants'][0] ?? null; $option = $firstVariant['options'][0]['option'] ?? null; return view('product.show', [ 'collection' => $collection, 'product' => $product, 'option' => $option, 'variantsData' => $variantsData, ]); } }