code = self::getNextCode(); } catch (\Exception $e) { abort(500, $e->getMessage()); } }); } public static function getNextCode() { $last_number = self::withTrashed()->max('code'); $next_number = empty($last_number) ? 1 : ((int) explode('-', $last_number)[1] + 1); return self::makeCode($next_number); } public static function makeCode($next_number) { return (string) self::$code_prefix .'-'. str_pad($next_number, 5, 0, STR_PAD_LEFT); } public $fillable = [ 'submission_date', 'member_id', 'status' ]; public function files() { return $this->morphMany(File::class, 'fileable'); } public function member() { return $this->belongsTo(Member::class, 'member_id', 'id'); } }