channel_code !== null && $channel->channel_code !== '') { return; } do { $channel->channel_code = (string) Str::ulid(); } while (static::query()->where('channel_code', $channel->channel_code)->exists()); }); } public function competition(): BelongsTo { return $this->belongsTo(Competition::class); } public function firstSourceUsers(): HasMany { return $this->hasMany(User::class, 'first_channel_id'); } public function lastSourceUsers(): HasMany { return $this->hasMany(User::class, 'last_channel_id'); } public function applications(): HasMany { return $this->hasMany(Application::class, 'signup_channel_id'); } }