'datetime', 'due_date' => 'date', 'assigned_at' => 'datetime', ]; public function document() { return $this->belongsTo(HrDocument::class); } public function user() { return $this->belongsTo(User::class); } public function assignedBy() { return $this->belongsTo(User::class, 'assigned_by'); } public function creator() { return $this->belongsTo(User::class, 'created_by'); } public function getIsOverdueAttribute() { return $this->status === 'Pending' && $this->due_date && $this->due_date < Carbon::today(); } public function getDaysOverdueAttribute() { if (!$this->is_overdue) return 0; return Carbon::today()->diffInDays($this->due_date); } public function getDaysRemainingAttribute() { if ($this->status !== 'Pending' || !$this->due_date) return null; return Carbon::today()->diffInDays($this->due_date, false); } }