{{ $today->format('D, d M Y') }} @include('dashboard.quick-attendance')
PEOPLE OPERATIONS OVERVIEW

A clearer view.
A better day ahead.

Keep your workforce moving and every important deadline in sight.

@if($canSeeCompliance)Review document deadlines @elseView your updates @endif @if($canSeePeople) Employee directory@endif
@if($canSeeCompliance)YOUR NEXT PRIORITY @else YOUR WORKSPACE @endif@if($canSeeCompliance){{ $expiryBuckets[0]['value'] + $expiryBuckets[1]['value'] }}

documents expired or due
within the next 7 days

Stay one step ahead @else

A connected place for your
people and daily work

@endif
@if(count($metrics))
@foreach($metrics as $metric)
{{ number_format($metric['value']) }}{{ $metric['label'] }}{{ $metric['detail'] }}
@endforeach
@endif @if($canSeeCompliance)

Document expiry & renewals

Know what needs attention before a deadline becomes a disruption.

Open compliance
@foreach($expiryBuckets as $bucket)
{{ $bucket['label'] }}{{ number_format($bucket['value']) }}{{ $bucket['hint'] }}
@endforeach
@foreach(['90'=>'All due · 90 days','expired'=>'Expired','30'=>'Next 30 days'] as $value=>$label){{ $label }}@endforeach
{{ number_format($deadlineTotal) }} {{ $deadlineTotal===1?'document':'documents' }} · earliest first
@forelse($deadlines as $item)@php($doc=$item['document'])@empty@endforelse
Verified document deadlines, including overdue documents
Document / employeeExpiry datePriorityRenewal statusAction
{{ $doc->type?->name ?? 'Document' }}{{ $doc->employee?->full_name ?? ucfirst($doc->owner_type).' document' }}{{ $doc->title }}
{{ $doc->expires_on->format('d M Y') }}{{ $item['timing'] }}{{ $item['days']<0?'Expired':($item['days']<=7?'Urgent':($item['days']<=30?'Upcoming':'Planned')) }}@if($item['renewal']){{ $item['renewal']->status==='pending_verification'?'Awaiting verification':'Renewal open' }}{{ $item['renewal']->owner?->name ?? 'Owner unavailable' }}@elseNot started@endif
No documents in this expiry window

Your verified documents have no deadlines in the selected period.

View document vault
Based on saved expiry dates. Records without confirmed dates are tracked separately.@if($deadlineTotal>6)View all deadlines @endif

Your compliance picture

Documents with a saved expiry date

@php($cursor=0)@php($stops=[])@foreach($expirySegments as $segment)@php($next=$cursor+($datedDocuments ? $segment['value']/$datedDocuments*100:0))@php($stops[]=$segment['hex'].' '.$cursor.'% '.$next.'%')@php($cursor=$next)@endforeach
@foreach($expirySegments as $segment)
{{ $segment['label'] }}{{ $segment['value'] }}
@endforeach
{{ $unverified }} {{ $unverified===1?'document awaits':'documents await' }} confirmed document dates

Upcoming expiry forecast

{{ $today->format('d M') }} – {{ $today->startOfMonth()->addMonths(5)->endOfMonth()->format('d M Y') }}

@php($chartMax=max(1,collect($expiryForecast)->max('value')))
Documents expiring {{ array_sum(array_column($expiryForecast,'value')) }} total
Upcoming saved expiries only. Overdue documents appear in the priority list above.

Renewals in progress

Clear ownership. Visible next steps.

View all

A few useful shortcuts

Jump straight into your everyday work.

@foreach([['employees.manage','employees','Employee directory','users'],['documents.manage','documents','Add and manage documents','file'],['compliance.manage','compliance','Manage document renewals','refresh'],['reports.view','reports','Explore workforce reports','chart']] as [$permission,$path,$label,$icon])@can($permission)@if($path==='reports' || app(\App\Domain\Platform\Entitlements::class)->enabled($path)){{ $label }}@endif @endcan @endforeach
@endif
YOUR DAILY FOCUS{{ auth()->user()->role?->name }} workspaceShortcuts, tasks and approvals · {{ count($workCards) }} summaries
@foreach($workCards as $card)@php($cardStyle=match(strtok($card['path'],'?')){'employees'=>['users','teal'],'lifecycle'=>['flow','indigo'],'recruitment'=>['briefcase','amber'],'compliance'=>['shield','rose'],'notifications'=>['bell','orange'],'automation','requests'=>['check','indigo'],'my-equipment'=>['briefcase','teal'],default=>['clock','teal']}){{ $card['label'] }}{{ number_format($card['value']) }}@endforeach
@can('audit.view')
WORKSPACE PULSERecent activityYour latest workspace updates@forelse($activity as $entry)
{{ ucfirst(str_replace('.',' · ',$entry->action)) }}{{ $entry->subject }}
@empty

New workspace activity will appear here.

@endforelse
@endcan