def METHOD_NAME(user, usage_key):
    """
    Create a bookmark.
    Arguments:
        user (User): The user of the bookmark.
        usage_key (UsageKey): The usage_key of the bookmark.
    Returns:
         Dict.
    Raises:
        ItemNotFoundError: If no block exists for the usage_key.
        BookmarksLimitReachedError: if try to create new bookmark when max limit of bookmarks already reached
    """
    usage_key = usage_key.replace(course_key=modulestore().fill_in_run(usage_key.course_key))
    data = {
        'user': user,
        'usage_key': usage_key
    }
    if usage_key.course_key.run is None:
        raise ItemNotFoundError
    if not can_create_more(data):
        raise BookmarksLimitReachedError
    bookmark, created = Bookmark.create(data)
    if created:
        _track_event('edx.bookmark.added', bookmark)
    return BookmarkSerializer(bookmark, context={'fields': DEFAULT_FIELDS + OPTIONAL_FIELDS}).data