$this->collection->map(function ($leave) { return [ 'id' => $leave->id, 'employee_id' => $leave->employee_id, 'type' => $leave->type, 'status' => $leave->status, 'start_date' => $leave->start_date?->format('Y-m-d'), 'end_date' => $leave->end_date?->format('Y-m-d'), 'reason' => $leave->reason, 'notes' => $leave->notes, 'approved_by' => $leave->approved_by, 'approved_at' => $leave->approved_at?->format('Y-m-d H:i:s'), 'created_at' => $leave->created_at?->format('Y-m-d H:i:s'), 'updated_at' => $leave->updated_at?->format('Y-m-d H:i:s'), 'employee' => $leave->employee ? [ 'id' => $leave->employee->id, 'first_name' => $leave->employee->first_name, 'last_name' => $leave->employee->last_name, 'full_name' => $leave->employee->full_name, 'email' => $leave->employee->email, 'job_title' => $leave->employee->job_title, ] : null, 'approver' => $leave->approver ? [ 'id' => $leave->approver->id, 'name' => $leave->approver->name, 'email' => $leave->approver->email, ] : null, ]; }), ]; } }