'required|email|max:255', 'role' => 'required|in:admin,editor,viewer', ]; } public function invite(): void { $this->validate(); $workspace = app('current_workspace'); WorkspaceInvitation::create([ 'workspace_id' => $workspace->id, 'email' => strtolower($this->email), 'role' => $this->role, 'token' => Str::random(40), 'invited_by' => auth()->id(), 'expires_at' => now()->addDays(7), ]); $this->dispatch('memberInvited'); $this->closeModal(); } public static function modalMaxWidth(): string { return 'sm'; } public function render(): View { return view('livewire.modals.invite-member'); } }