validate(); $key = 'contact-form:' . request()->ip(); if (RateLimiter::tooManyAttempts($key, 3)) { $this->addError('message', 'Too many contact attempts. Please try again in 60 seconds.'); return; } RateLimiter::increment($key, 60); try { $contactMessage = ContactMessage::create([ 'name' => $this->name, 'email' => $this->email, 'subject' => $this->subject ?: 'Contact Form Submission', 'message' => $this->message, 'ip_address' => request()->ip(), 'user_agent' => request()->userAgent(), ]); RateLimiter::clear($key); $this->reset(['name', 'email', 'subject', 'message']); $this->sent = true; session()->flash('success', 'Thank you for your message! We will get back to you soon.'); } catch (\Exception $e) { $this->addError('message', 'There was an error sending your message. Please try again later.'); \Log::error('Contact form error: ' . $e->getMessage()); } } public function render() { return view('contactpage::contact-form'); } }