Carbon::parse($value)->translatedFormat('l d/m/Y') ); } protected function amount(): Attribute { return Attribute::make( get:fn($value) => HelperService::setRupiahFormat($value, true) ); } protected function expDate(): Attribute { return Attribute::make( get:fn($value) => Carbon::parse($value)->translatedFormat('l d/m/Y') ); } public function member() { return $this->belongsTo(Member::class); } public function user() { return $this->belongsTo(User::class); } public function mutation() { return $this->hasOne(Mutation::class); } public function scopeFilter($query, array $filters) { $query->when($filters['search'] ?? null, function ($query, $search) { $query->where(function ($query) use ($search) { $query->orWhereHas('member', function ($query) use ($search) { $query->where('name', 'like', '%' . $search . '%'); }); }); })->when($filters['startDate'] ?? null, function ($query, $date) { $query->whereDate('created_at', '>=', $date); })->when($filters['endDate'] ?? null, function ($query, $date) { $query->whereDate('created_at', '<=', $date); }); } }