PayrollAdjustmentType::class, 'amount' => 'integer', ]; } protected function formattedAmount(): Attribute { return Attribute::make( get: fn () => 'Rp ' . number_format($this->amount, 0, ',', '.'), ); } protected function typeLabel(): Attribute { return Attribute::make( get: fn () => $this->type->label(), ); } #[Scope] protected function bonus(Builder $query): void { $query->where('type', PayrollAdjustmentType::BONUS); } #[Scope] protected function deduction(Builder $query): void { $query->where('type', PayrollAdjustmentType::DEDUCTION); } public function attendance(): BelongsTo { return $this->belongsTo(Attendance::class); } public function createdBy(): BelongsTo { return $this->belongsTo(User::class, 'created_by_id'); } public function payroll(): BelongsTo { return $this->belongsTo(Payroll::class); } }