unsignedBigInteger('admin_user_id'); $table->unsignedBigInteger('role_id'); $table->primary(['admin_user_id', 'role_id']); $table->foreign('admin_user_id')->references('id')->on('admin_users')->cascadeOnDelete(); $table->foreign('role_id')->references('id')->on('roles')->cascadeOnDelete(); }); Schema::create('role_permissions', function (Blueprint $table) { $table->unsignedBigInteger('role_id'); $table->unsignedBigInteger('permission_id'); $table->primary(['role_id', 'permission_id']); $table->foreign('role_id')->references('id')->on('roles')->cascadeOnDelete(); $table->foreign('permission_id')->references('id')->on('permissions')->cascadeOnDelete(); }); Schema::create('role_menus', function (Blueprint $table) { $table->unsignedBigInteger('role_id'); $table->unsignedBigInteger('menu_id'); $table->primary(['role_id', 'menu_id']); $table->foreign('role_id')->references('id')->on('roles')->cascadeOnDelete(); $table->foreign('menu_id')->references('id')->on('menus')->cascadeOnDelete(); }); } public function down(): void { Schema::dropIfExists('role_menus'); Schema::dropIfExists('role_permissions'); Schema::dropIfExists('admin_user_roles'); } };