env('ERROR_NOTIFICATION_THROTTLE_MINUTES', 15) returns the literal string
"15" from production's .env (env() doesn't cast numeric strings), which
Carbon 3.11's addMinutes() rejects with a TypeError. That crash happened
before the throttle-dedup cache write, so it silently masked the *original*
exception on every notify-worthy error, indefinitely (discovered while
investigating a missing workshop-registration email — the real SMTP error
was hidden behind this crash). Cast to (int).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Client reported the site's address was missing "Jaffa Street" — added to
both Arabic and English footer strings (lang/ar/footer.php, lang/en/footer.php).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- public/images/logo.png replaced with the client's professionally-designed
version, cropped to remove excess background margin (used sitewide via
logo.blade.php / app-logo.blade.php / app-logo-icon.blade.php)
- New standalone, unlinked registration form at /forms/nablus-workshop for a
one-off workshop Libra is co-hosting with Smart Business Center, replicating
a ClickUp form the client previously used but with Libra's own branding.
Submissions email info@libra.adv.ps and redirect to /about. No nav/footer
link, no DB storage, no captcha (PRD v1.3).
- Tasks 17 (parent), 17-1 (Mailable + email template), 17-2 (page/route/form)
taken through product-definition -> task-readiness -> dev-implement -> dev-qa,
all Done. 11 new tests passing; full suite run clean of new regressions
(69 pre-existing unrelated failures, documented in docs/tasks/17.md).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>