'datetime', ]; // protected $appends = ['duration']; protected $appends = ['duration', 'proof_photo_url']; public function user() { return $this->belongsTo(User::class); } public function approver() { return $this->belongsTo(User::class, 'approved_by'); } public function getProofPhotoUrlAttribute() { if ($this->proof_photo) { return asset('storage/permissions/' . $this->proof_photo); } return null; } public function getDurationAttribute() { $start = \Carbon\Carbon::parse($this->start_date); $end = \Carbon\Carbon::parse($this->end_date); return $start->diffInDays($end) + 1; } public function scopePending($query) { return $query->where('status', 'pending'); } public function scopeApproved($query) { return $query->where('status', 'accepted'); } public function scopeRejected($query) { return $query->where('status', 'rejected'); } }