private async Task <Result <GuildConfigModel> > CheckStaffAndRetrieveModel() { var userRes = await _client.GetGuildUser(Context.Guild.Id, Context.User.Id); if (userRes.IsFailure()) { return(new KeyNotFoundException()); } var user = userRes.Get(); var result = await _repo.GetGuildConfig(Context.Guild.Id); var model = result.GetModelOrDefault(Context.Guild); if (!user.IsStaff(model.StaffRoles)) { return(new UnauthorizedAccessException()); } return(model); }