like('grn_number', $prefix, 'after') ->orderBy('grn_id', 'DESC') ->first(); $seq = 1; if ($row && !empty($row['grn_number'])) { $parts = explode('-', $row['grn_number']); $lastSeq = (int) end($parts); if ($lastSeq > 0) { $seq = $lastSeq + 1; } } return $prefix . '-' . str_pad((string)$seq, 4, '0', STR_PAD_LEFT); } }