abstract class CompanyBaseRequest extends FormRequest { ... public function rules() { return [ 'name' => ['required', 'string', 'max:255'], 'category_id' => ['required', 'exists:company_categories,id'], 'short_description' => ['required', 'string', 'max:2000'], 'video' => ['nullable', 'file', 'mimes:mp4', 'max:30000'], ]; } } And then two subclasses: class CompanyStoreRequest extends CompanyBaseRequest { ... public function rules() { return array_merge(parent::rules(), [ 'logo' => ['required', 'file', 'mimes:png,jpg,jpeg', 'max:1024'], ]); } } class CompanyUpdateRequest extends CompanyBaseRequest { ... public function rules() { return array_merge(parent::rules(), [ 'logo' => ['nullable', 'file', 'mimes:png,jpg,jpeg', 'max:1024'], ]); } }