belongsToMany(User::class, 'penugasan_pegawai', 'penugasan_id', 'pegawai_id'); } public function progress() { return $this->hasMany(PenugasanProgress::class)->latest(); } // 2. Relasi ke Pembuat (Admin/Kasi) public function pembuat() { return $this->belongsTo(User::class, 'created_by'); } // 3. Relasi ke Penyetuju (Superadmin/Kabid) public function penyetuju() { return $this->belongsTo(User::class, 'approved_by'); } // 4. Accessor untuk Status Dinamis (Otomatis Terlambat jika melewati deadline) public function getStatusAttribute($value) { if ($value === 'proses' && !empty($this->attributes['tanggal_selesai'])) { if (\Carbon\Carbon::now()->startOfDay()->gt(\Carbon\Carbon::parse($this->attributes['tanggal_selesai'])->startOfDay())) { return 'terlambat'; } } return $value; } }