firstOrFail()->emailServer()->firstOrFail(); } public function store(CreateUpdate $request, string $domain) { $space = Space::where('domain', $domain)->firstOrFail(); $emailServer = $space->emailServer ?? new SpaceEmailServer; $emailServer->space_id = $space->id; $emailServer->host = $request->get('host'); $emailServer->port = $request->get('port'); $emailServer->username = $request->get('username'); $emailServer->password = $request->get('password'); $emailServer->from_address = $request->get('from_address') ?? null; $emailServer->from_name = $request->get('from_name') ?? null; $emailServer->signature = $request->get('signature') ?? null; $emailServer->save(); return $emailServer; } public function destroy(string $domain) { $space = Space::where('host', $domain)->firstOrFail(); return $space->emailServer->delete(); } }