برای پیاده سازی روابط چند به چند باید موارد زیر رو رعایت کنید
نام جدول واسط بطور پشفرض براساس ترتیب حروف الفبا ساخته میشه مثلا برای مادلهای Post و Category چون c از p جلوتر هست نام جدول واسط
هم به این شکل باید بشه category_post اگر هم بخواید از نام اختصاصی استفاده کنید مثل شما که post_category زدید باید در پارامتر دوم متدهای هر دو مادل نام جدول رو قرار بدید
که با کدهای شما به شکل زیر میشن:
مادل Category
public function posts(){
return $this->belongsToMany(Post::class,'post_category');
}
مادل Post
public function categories(){
return $this->belongsToMany(Category::class,'post_category');
}
برای فراخوانی هم به همین شکل کد رو بنویسید
$posts = Post::find($id)->categories()->get();