public function findWhereProduct(Product $product) { return $this->executeCallback(get_called_class(), __FUNCTION__, ['product' => $product->getMorphString()], function () use($product) { // mimic a where clause in order to properly generate the cache hash $this->where('product', $product->getMorphString()); return $product->shippingPlans; }); }