id(); $table->string('track_id')->unique(); $table->unsignedBigInteger('amount'); $table->string('status')->default(PaymentStatusEnum::Pending->value); $table->string('purpose')->default(PaymentPurposeEnum::Invoice->value); $table->string('ref_number')->nullable(); $table->timestamp('verified_at')->nullable(); $table->timestamps(); $table->foreignId('invoice_id')->nullable()->constrained('invoices')->cascadeOnDelete(); $table->foreignId('payer_id')->constrained('users')->cascadeOnDelete(); }); } public function down(): void { Schema::dropIfExists('payments'); } };