belongsTo(User::class, 'user_id', 'id'); } public function medicalRecords() { return $this->hasMany(MedicalRecord::class); } protected static function booted() { static::deleting(function ($patient) { // Hapus user yang terhubung dengan patient ini if ($patient->user) { $patient->user->delete(); } }); static::creating(function ($patient) { if (empty($patient->medical_record_number)) { $prefix = 'RM' . now()->format('ym'); $latestNumber = static::where('medical_record_number', 'like', $prefix . '%') ->orderByDesc('medical_record_number') ->value('medical_record_number'); if ($latestNumber) { $nextNumber = ((int) substr($latestNumber, -4)) + 1; } else { $nextNumber = 1; } $patient->medical_record_number = $prefix . str_pad($nextNumber, 4, '0', STR_PAD_LEFT); } }); } }