@php /** * One testimonial card — a real approved review (photo, name, rating, words). * Extracted so the testimonials marquee can render the same card in both rows and in * each loop copy without duplicating markup. * * @var array $t row of [author_name, avatar, rating, comment, restaurant_name] */ $t = $t ?? []; $rating = max(1, min(5, (int) ($t['rating'] ?? 5))); @endphp
@php // Decorative oversized quote mark, same idiom as .qm-kpi-bg / .qm-cuisine-bg. @endphp
@partial('cards/stars', ['rate' => $rating])

{{ (string) ($t['comment'] ?? '') }}

@php // Decorative: the reviewer's name is already shown as text beside it (matches the app's alt="" avatar convention). @endphp
{!! !empty($t['author_name']) ? e((string) $t['author_name']) : t('home.testimonials.customer_fallback') !!}
{{ (string) ($t['restaurant_name'] ?? '') }}