uuid('id')->primary(); $table->foreignUuid('contract_id')->constrained('contracts')->cascadeOnDelete(); $table->string('payment_type'); $table->integer('installment_no')->default(1); $table->decimal('amount', 15, 2); $table->date('due_date')->nullable(); $table->date('paid_date')->nullable(); $table->string('status')->default('PENDING'); // PENDING, PAID, OVERDUE, CANCELLED $table->string('receipt_number')->nullable(); $table->jsonb('metadata')->nullable(); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('payments'); } };