*/ public static function valueRulesFor(string $type): array { return match ($type) { 'email' => ['required', 'string', 'email', 'max:255'], 'domain' => ['required', 'string', 'max:255', 'regex:/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/'], 'ip' => ['required', 'ip'], 'username' => ['required', 'string', 'max:255', 'regex:/^[a-zA-Z0-9._-]+$/'], default => ['required', 'string', 'max:255'], }; } public function investigation(): BelongsTo { return $this->belongsTo(Investigation::class); } public function creator(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function findings(): HasMany { return $this->hasMany(Finding::class); } }