public function form(WorkOrder $workOrder, Attachment $attachment)
    {
        return $this->form->of('work-orders.attachments', function (FormGrid $form) use ($workOrder, $attachment) {
            $files = true;

            if ($attachment->exists) {
                $url = route('maintenance.work-orders.attachments.update', [$workOrder->getKey(), $attachment->getKey()]);
                $method = 'PATCH';
                $form->submit = 'Save';
                $form->with($attachment);
            } else {
                $url = route('maintenance.work-orders.attachments.store', [$workOrder->getKey()]);
                $method = 'POST';
                $form->submit = 'Upload';
            }

            $form->attributes(compact('url', 'method', 'files'));

            $form->fieldset(function (Fieldset $fieldset) use ($attachment) {
                if ($attachment->exists) {
                    // If the attachment exists we'll provide the ability
                    // to only change the attachments name.
                    $fieldset
                        ->control('input:text', 'name')
                        ->label('Attachment Name');
                } else {
                    // Otherwise we'll allow the user to upload multiple
                    // attachments at once for the specified work order.
                    $fieldset
                        ->control('input:file', 'files[]')
                        ->label('Files')
                        ->attributes([
                            'multiple' => true,
                        ]);
                }
            });
        });
    }