Tables\Columns\IconColumn::make('latestAsbestosCompliance.asbestos_present')
                    ->label('Asbestos Present')
                    ->getStateUsing(function ($record) {
                        if ($record?->latestAsbestosCompliance) {
                            return $record->latestAsbestosCompliance->asbestos_present ? 'Yes' : 'No';
                        } else {
                            return 'Not Recorded';
                        }
                    })
                    ->icon(function ($state) {
                        return match ($state) {
                            'Yes' => 'heroicon-o-face-frown',
                            'No' => 'heroicon-o-face-smile',
                            'Not Recorded' => 'heroicon-o-exclamation-triangle',
                        };
                    })
                    ->tooltip(function ($state) {
                        return match ($state) {
                            'Yes' => 'Asbestos is present',
                            'No' => 'Asbestos is not present',
                            'Not Recorded' => 'Asbestos compliance has not been recorded',
                        };
                    })
                    ->color(function ($state) {
                        return match ($state) {
                            'Yes' => 'danger',
                            'No' => 'success',
                            'Not Recorded' => 'danger',
                        };
                    })
                    ->sortable()
                    ->action(
                        EditAction::make('editLatestAsbestosCompliance')
                            ->visible(fn($record) => !!$record->latestAsbestosCompliance)
                            ->modalHeading('Edit Asbestos Compliance')
                            ->mutateRecordDataUsing(function (array $data) {
                                $location = Location::find($data['id']);

                                return $location->latestAsbestosCompliance->toArray();
                            })
                            ->form([
                                Forms\Components\Section::make('Compliance')
                                    ->columns(3)
                                    ->schema([
                                        Forms\Components\Toggle::make('asbestos_present')
                                            ->label('Asbestos Present'),
                                        Forms\Components\Toggle::make('survey_in_place')
                                            ->label('Survey in Place'),
                                        Forms\Components\Toggle::make('team_training_complete')
                                            ->label('Team Training Complete'),
                                    ]),

                                Forms\Components\Grid::make(2)->schema([
                                    Forms\Components\FileUpload::make('documentation_attachment')
                                        ->label('Documentation')
                                        ->disk('public')
                                        ->directory('asbestos')
                                        ->maxSize(10240),
                                    Forms\Components\Textarea::make('notes')
                                        ->label('Notes'),
                                ]),
                            ])
                            ->using(function (Location $record, array $data): Location {
                                $record->latestAsbestosCompliance->update($data);
                                return $record;
                            }),

                        CreateAction::make('createLatestAsbestosCompliance')
                            ->visible(fn($record) => !$record->latestAsbestosCompliance)
                            ->modalHeading('Create Asbestos Compliance')
                            ->form([
                                Forms\Components\Section::make('Compliance')
                                    ->columns(3)
                                    ->schema([
                                        Forms\Components\Toggle::make('asbestos_present')
                                            ->label('Asbestos Present'),
                                        Forms\Components\Toggle::make('survey_in_place')
                                            ->label('Survey in Place'),
                                        Forms\Components\Toggle::make('team_training_complete')
                                            ->label('Team Training Complete'),
                                    ]),

                                Forms\Components\Grid::make(2)->schema([
                                    Forms\Components\FileUpload::make('documentation_attachment')
                                        ->label('Documentation')
                                        ->disk('public')
                                        ->directory('asbestos')
                                        ->maxSize(10240),
                                    Forms\Components\Textarea::make('notes')
                                        ->label('Notes'),
                                ]),
                            ])
                            ->using(function (Location $record, array $data): Location {
                                $record->asbestosCompliance->create($data);
                                return $record;
                            }),
                    ),