'datetime', 'changed_data' => 'array', ]; public static function lastSyncId(): int { return (int) static::where('action', 'synced')->max('id') ?: 0; } public static function changesSince(int $since): \Illuminate\Database\Eloquent\Collection { return static::where('id', '>', $since) ->whereIn('action', ['created', 'updated', 'deleted']) ->orderBy('id') ->get(); } public static function markSynced(string $ip): static { return static::create([ 'datetime' => now(), 'ip' => $ip, 'user' => auth()->user()?->name ?? 'system', 'table_name' => '', 'action' => 'synced', ]); } }