$query * @return Builder */ abstract public function apply(Builder $query): Builder; /** * @param array|string|null $request */ public static function fromRequest(array|string|null $request = null): static { $payload = is_string($request) ? json_decode(rawurldecode(base64_decode($request)), true) : $request; return static::fromPost($payload); } /** * @param array $post */ public static function fromPost(?array $post = null): static { return static::factory()->withoutMagicalCreation()->from($post ?: [])->toDefault(); } /** * @return static(self) */ public function toDefault(): self { return $this; } }