with('causer')->latest(); if ($causerId = request('causer_id')) { $query->where('causer_id', $causerId); } if ($subjectType = request('subject_type')) { $query->where('subject_type', $subjectType); } if ($logName = request('log_name')) { $query->where('log_name', $logName); } if ($from = request('from')) { $query->where('created_at', '>=', $from); } if ($to = request('to')) { $query->where('created_at', '<=', $to); } $activities = $query->paginate(25); return response()->json([ 'data' => $activities->map(fn (Activity $activity) => [ 'id' => $activity->id, 'log_name' => $activity->log_name, 'description' => $activity->description, 'event' => $activity->event, 'causer' => $activity->causer ? [ 'id' => $activity->causer->id, 'name' => $activity->causer->full_name ?? $activity->causer->name ?? null, 'email' => $activity->causer->email ?? null, ] : null, 'subject_type' => $activity->subject_type, 'subject_id' => $activity->subject_id, 'properties' => $activity->properties, 'created_at' => $activity->created_at->toIso8601String(), ]), 'meta' => [ 'current_page' => $activities->currentPage(), 'last_page' => $activities->lastPage(), 'per_page' => $activities->perPage(), 'total' => $activities->total(), ], ]); } }