protected function findProduct(int $id) : ProductInterface
    {
        $product = $this->repository->find($id);
        if (!$product instanceof ProductInterface) {
            throw new ProductNotFoundException($id);
        }

        return $product;
    }