id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->foreignId('role_id')->constrained()->onDelete('cascade'); $table->nullableMorphs('assignable'); $table->timestamps(); // Ensure unique role assignments $table->unique(['user_id', 'role_id', 'assignable_type', 'assignable_id'], 'unique_role_user'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('role_user'); } };