     ///   - worker: An object for connecting to the database.
     /// - Returns: A future without a value indicating that the user can be created.
     /// - Throws: If the user shouldn't be registered.
-    static func preRegister(with: Registration, on worker: DatabaseConnectable) throws -> Future<Void>
+    static func preRegister(
+        with: Registration,
+        on worker: DatabaseConnectable
+    ) throws -> Future<Void>
 
     /// Performs work, such as validation, before the user is being updated.
     ///

    Self.Database: QuerySupporting,
    Self.Registration: HasReadableUser
{
    public static func preRegister(with registration: Registration, on worker: DatabaseConnectable) throws -> Future<Void> {
        return try Self.query(on: worker)
            .filter(Self.usernameKey == registration.username)
            .first()

    Self.Update: HasUpdatablePassword,
    Self: HasPassword
{
    public func preUpdate(
        with update: Update,
        on worker: DatabaseConnectable
    ) throws -> Future<Void> {
        if update.password != nil && (update.username == nil && update.oldPassword == nil) {
            throw AuthenticationError.passwordWithoutUsernameOrOldPassword
        }
