foreignId('user_id')->constrained()->cascadeOnDelete(); $table->foreignId('permission_id')->constrained()->cascadeOnDelete(); $table->string('effect')->default('allow'); $table->text('reason')->nullable(); $table->timestamp('expires_at')->nullable(); $table->timestamps(); $table->primary(['user_id', 'permission_id']); }); } public function down(): void { Schema::dropIfExists('user_permissions'); } };