@php use App\Enums\AdminAction; $label = AdminAction::tryFrom($entry->action)?->label() ?? $entry->action; $scalar = function ($v): string { if (is_bool($v)) return $v ? 'true' : 'false'; if (is_null($v)) return '—'; if (is_array($v)) return json_encode($v, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); return (string) $v; }; $old = $entry->old_value ?? []; $new = $entry->new_value ?? []; $keys = array_values(array_unique([...array_keys($old), ...array_keys($new)])); // Resolve a link to the affected entity where we own a detail screen. $entityUrl = match ($entry->entity_type) { 'user' => $entry->entity_id ? route('admin.users.show', $entry->entity_id) : null, 'donation' => $entry->entity_id ? route('admin.donations.show', $entry->entity_id) : null, default => null, }; @endphp Audit log

Audit record · #{{ $entry->id }}

{{ $entry->created_at?->format('d M Y, H:i:s') ?: '—' }}

Append-only
Record
{{ $label }} · {{ $entry->action }} @if ($entry->entity_type) @if ($entityUrl){{ $entry->entity_type }} #{{ $entry->entity_id }}@else{{ $entry->entity_type }}@if ($entry->entity_id) #{{ $entry->entity_id }}@endif @endif @else — @endif {{ $entry->actor?->full_name ?: 'System' }} @if ($entry->actor_u_ident)· {{ $entry->actor_u_ident }}@endif @if ($entry->affectedUser && (int) $entry->affectedUser->role_id === 3) {{ $entry->affectedUser->full_name }} · {{ $entry->affected_u_ident }} @else {{ $entry->affected_u_ident ?: '—' }} @endif {{ $entry->reason ?: '—' }} {{ $entry->created_at?->format('d M Y, H:i:s') ?: '—' }} {{ $entry->user_agent ?: '—' }}
Change @if ($keys === [])

No before/after values recorded for this action.

@else
@foreach ($keys as $k) @php $hasOld = array_key_exists($k, $old); $hasNew = array_key_exists($k, $new); @endphp @if ($hasOld && $hasNew) @elseif ($hasNew) {{ $scalar($new[$k]) }} @else {{ $scalar($old[$k]) }} @endif @endforeach
@endif
Related activity @if ($related->isEmpty())

No other audit entries for this {{ $entry->affected_u_ident ? 'fundraiser' : 'entity' }}.

@else @foreach ($related as $r) {{ AdminAction::tryFrom($r->action)?->label() ?? $r->action }} · {{ $r->actor?->full_name ?: 'System' }} @endforeach @endif