return view('product.edit', compact('categories','products'));
Вот в этой строке в контроллере в шаблон передаются две переменные сейчас...
public function edit($id)
{
$categories = Category::whereNull('category_id')->with('childrenCategories')->get();
// $products = Product::where('id',$id)->get();
$product = Product::where('id',$id)->get();
return view('product.edit', compact('categories','products','product'));
}