## Bug description

Since users can now be part of multiple projects, the `get_team_from_token` function used in capture and decide endpoints cannot work reliably with personal API keys. These endpoints should be e.g. nested under `/api/projects/:project_id` _or_ should accept `project_id` in request body.

#### *Thank you* for your bug report – we love squashing them!

posthog/api/personal_api_key.py
"""Create-only PersonalAPIKey serializer that also returns key value."""
    class Meta:
        model = PersonalAPIKey
        fields = ["id", "label", "value", "created_at", "last_used_at", "team_id", "user_id"]
        read_only_fields = ["id", "value", "created_at", "last_used_at", "team_id", "user_id"]
    def create(self, validated_data: dict, **kwargs) -> PersonalAPIKey:
        user = self.context["request"].user
        personal_api_key = PersonalAPIKey.objects.create(user=user, team=user.team, **validated_data)
        return personal_api_key
class PersonalAPIKeyViewSet(
    mixins.ListModelMixin,
    mixins.RetrieveModelMixin,
    mixins.CreateModelMixin,
    mixins.DestroyModelMixin,
    viewsets.GenericViewSet,
):
    serializer_class = PersonalAPIKeySerializer
    lookup_field = "id"
    def get_queryset(self):
        return PersonalAPIKey.objects.filter(user_id=self.request.user.id).order_by("-created_at")
    def get_serializer_class(self) -> Type[serializers.ModelSerializer]:
        serializer_class = self.serializer_class
        if self.request.method == "POST":
            serializer_class = PersonalAPIKeySerializerCreateOnly
        return serializer_class
    def list(self, request, *args, **kwargs):
        queryset = self.filter_queryset(self.get_queryset())
        serializer = self.get_serializer(queryset, many=True)
        return response.Response(serializer.data)