where('status', 'completed'); })->get(); foreach ($payrollEntries as $entry) { // Check if payslip already exists $exists = Payslip::where('payroll_entry_id', $entry->id)->exists(); if (!$exists) { $payslipNumber = Payslip::generatePayslipNumber( $entry->employee_id, $entry->payrollRun->pay_date ); Payslip::create([ 'payroll_entry_id' => $entry->id, 'employee_id' => $entry->employee_id, 'payslip_number' => $payslipNumber, 'pay_period_start' => $entry->payrollRun->pay_period_start, 'pay_period_end' => $entry->payrollRun->pay_period_end, 'pay_date' => $entry->payrollRun->pay_date, 'status' => 'generated', 'created_by' => $entry->created_by, ]); } } } }